现在有个list,存放"portal","sag","see"这三个单词,我现在想对这三个单词进行排序,将sag放在第一个,see放在第二个,portal放在第三个,请问应该怎么做?麻烦知道的告诉下,谢谢!

解决方案 »

  1.   

    你是要移动这几个单词,对list进行操作还是自动排序啊,说说清楚
      

  2.   

    比较需要比较主体,比较规则
    java.util.Collectionspublic static <T> void sort(List<T> list,
                                Comparator<? super T> c)规则使用自然排序就不用
    List list = Arrays.asList("a","c","b");
        Collections.sort(list);
        for (int i = 0, n = list.size(); i < n; i++) {
          if (i != 0)
            System.out.print(", ");
          System.out.print(list.get(i));
        }
        System.out.println();
      

  3.   

    可以利用java 中数组中的类库去排序,也可以直接自己写一个实现了compareable接口的类自己制定排序规则
      

  4.   

    最简单就是用TreeSet:
    跑下下列代码,看下输出。如何是添加复杂对象排序,这些对象必须实现compareable接口
    public class Test {
        public static void main(String[] args) {
    Set<String> set = new TreeSet<String>();
    set.add("sdada");
    set.add("zz");
    set.add("111");
    for (String s : set)
        System.out.println(s);
        }
    }
      

  5.   

    关于排序的问题网上有好多的资料,
    http://uule.iteye.com/blog/911971
    这篇文章比较有代表性,楼主可以看看,是否对你有所帮助
      

  6.   

    默认的String是实现了Comparable接口吧 就可以实现那个功能吧
      

  7.   

    如楼上说的,用Collections.sort(list)就可以:
    List<String> list=new ArrayList<String>();
    list.add("hh");
    list.add("ll");
    list.add("aa");
    Collections.sort(list);
    for(String str:list)
    System.out.println(str);
      

  8.   

    public static <T> void main(String[] args) {
    List<String> list=new ArrayList<String>();
    list.add("portal");
    list.add("sag");
    list.add("see");
    String []ary=new String[list.size()];
    list.toArray(ary);
    Arrays.sort(ary,new Comparator<String>() {
    public int compare(String o1, String o2) {
    return o1.charAt(1)-o2.charAt(1);
    }
    });
    System.out.println(Arrays.toString(ary));
    list=Arrays.asList(ary);
    System.out.println(list);
    }
      

  9.   

    两种方式,list中如果存放的是引用类型的变量时,可以根据引用类型的自然顺序,就是在类中实现comparable接口的compareTo()方法,也可以根据自己定义的comparator;