当前位置:编程学习 > JAVA >>

list中单词排序

现在有个list,存放"portal","sag","see"这三个单词,我现在想对这三个单词进行排序,将sag放在第一个,see放在第二个,portal放在第三个,请问应该怎么做?麻烦知道的告诉下,谢谢! --------------------编程问答-------------------- 你是要移动这几个单词,对list进行操作还是自动排序啊,说说清楚 --------------------编程问答-------------------- 比较需要比较主体,比较规则
java.util.Collections

public 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();


--------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 可以利用java 中数组中的类库去排序,也可以直接自己写一个实现了compareable接口的类自己制定排序规则 --------------------编程问答-------------------- 最简单就是用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);
    }
} --------------------编程问答--------------------
引用 2 楼 dracularking 的回复:
比较需要比较主体,比较规则
java.util.Collections

public static <T> void sort(List<T> list,
                            Comparator<? super T> c)

规则使用自然排序就不用

Java code

List list = Arrays.asList("a","c"……

同意2楼的观点 --------------------编程问答-------------------- 关于排序的问题网上有好多的资料,
http://uule.iteye.com/blog/911971
这篇文章比较有代表性,楼主可以看看,是否对你有所帮助 --------------------编程问答-------------------- 默认的String是实现了Comparable接口吧 就可以实现那个功能吧 --------------------编程问答-------------------- 如楼上说的,用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);
--------------------编程问答-------------------- 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);
} --------------------编程问答-------------------- 得分 得分 !@@@看上面正解  编译运行OK --------------------编程问答-------------------- 两种方式,list中如果存放的是引用类型的变量时,可以根据引用类型的自然顺序,就是在类中实现comparable接口的compareTo()方法,也可以根据自己定义的comparator;
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,