日期:2014-05-20  浏览次数:20713 次

Java集合List的排序
Java中提供了默认的对集合的排序方法,比如Collections.sort()方法,这是默认按照字典的顺序排序的。

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("dddd");
list.add("eee");
list.add("fff");
// 字符串排序
Collections.sort(list);

我现在想问的问题是,可以实现按照字典的逆序排序吗。

------解决方案--------------------
默认排序方法只能对字符串集合排序,如果要改变默认排序,可以使用它的重载方法sort(List ,Comparator),需要自己实现Comparator接口,实现compare方法,定义排序规则。
------解决方案--------------------
Comparator<String> reverse = Collections.reverseOrder();

Collections.sort(list,reverse);
------解决方案--------------------
重写Compare:

 Collections.sort(list,new Comparator<String>() {

            @Override
            public int compare(String o1, String o2) {
              return o2.compareTo(o1);
            }
        });

------解决方案--------------------
http://blog.csdn.net/lrbyantai/article/details/7055992

使用Comparator对List排序 可以自定义排序规则
------解决方案--------------------
引用:
Comparator<String> reverse = Collections.reverseOrder();

Collections.sort(list,reverse);

        Comparator<String> reverseOrder = Collections.<String>reverseOrder();
        List<String> strings = new ArrayList<>(Arrays.asList("a","b","c"));
        System.out.println(strings);