collections.sort()默认排序规则

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lchq1995/article/details/83180335

默认按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是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的。

compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true。
Collections.sort(list, new PriceComparator());的第二个参数返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序。

猜你喜欢

转载自blog.csdn.net/lchq1995/article/details/83180335