zgfp.net
当前位置:首页 >> 关于CollECtions.sort(list)方法 >>

关于CollECtions.sort(list)方法

可以看看源码,Collections的sort方法如下: public static

ComparableTimSort中的 binarySort(): pivot = (Comparable)a[start]; 在while循环时会调用每个对象的compareTo方法: if(pivot.compareTo(a[mid]))

默认的是升序 但你既然知道Comparator,你就可以让它降序 例如: 比如原来你的comparator方法,返回的是 class A{int a;} comparator(A a1,A a2){return a1.a-a2.a}//升序 comparator(A a1,A a2){return a2.a-a1.a}//降序

LinkedList是一个泛型类,定义的时候需要声明元素的类型,不然在sort的时候会找不到Comparator。 List i=new LinkedList();

你不是已经完成了吗。set集合就是不重复,所以你使用set集合就可以去掉重复了

你这里JAVA中重新写了比较算法的COMPARE函数,但是其实 public int compare(String o1, String o2) { // TODO Auto-generated method stub int com = o1.split("-")[0].compareTo(o2.split("-")[0]); if (com == 0) { return o1.split("-")[1].c...

默认按ASCII码排序,一位一位的比较,应该排了3次 第一次比较第一位全部是a,所以顺序没变 第二次第二位排序[a0, a1, a12, a11, a10, a2, a3, a4, a5, a6, a7, a8, a9] 第三次第三位排序[a0, a1, a10, a11, a12, a2, a3, a4, a5, a6, a7, a8, a9]

默认是自然排序, 如果你重写了 Comparator和equals 方法 就是按照你的要求来排序

public int compareTo(User user0) { return this.getOrder()-user0.getOrder(); } compareTo 里面返回值是个int类型的吧? 大于0 前者大 有点模糊了,您试试就好了。

就是在Comparator定义一个你想要的排序规则 在Collections.sort(list, Comparator)中传入Comparator的实现的时候 sort方法中会调用你的compare方法排序

网站首页 | 网站地图
All rights reserved Powered by www.zgfp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com