如何移动所选项目以移动到列表顶部

时间:2011-03-16 05:37:25

标签: java

List<String> strings; // contains "foo", "bar", "baz", "xyz"

并且如果给出输入"baz",则函数重新排列(String输入)应该返回字符串

"baz", "foo", "bar", "xyz"

并且如果给出输入"bar",则函数重新排列(String输入)应该返回字符串

"bar", "foo", "baz", "xyz"

4 个答案:

答案 0 :(得分:18)

首先,删除该项目,然后在位置1再次添加该项目。

List<String> strings;

List<String> rearrange(String input) {
    strings.remove(input);
    strings.add(0,input);
    return strings;
}

答案 1 :(得分:6)

public static <T> List<T> rearrange(List<T> items, T input) {
  int index = items.indexOf(input);
  List<T> copy;
  if (index >= 0) {
    copy = new ArrayList<T>(items.size());
    copy.add(items.get(index));
    copy.addAll(items.subList(0, index));
    copy.addAll(items.subList(index + 1, items.size()));
  } else {
    return items;
  }
  return copy;
}

答案 2 :(得分:4)

public static <T> void setTopItem(List<T> t, int position){
    t.add(0, t.remove(position));
}

答案 3 :(得分:1)

将原始项目移动到原始列表的顶部:

public static <T> void rearrange(List<T> items, T input){
    int i = items.indexOf(input);
    if(i>=0){
        items.add(0, items.remove(i));
    }
}