Comparable 和 Comparator 的区别
1.Comparator位于包java.util下,而Comparable位于包java.lang下
2.Comparable接口将比较代码嵌入自身类中,而Comparator在一个独立的类中实现比较。
3.Comparator接口的比较方法compare(A,B)有两个参数,Comparable的比较方法compareTo(A)只有1个参数
a.compareTo(obj):如果a大于形参对象obj,则返回1;
compare(Object o1,Object o2):如果o1大于o2,返回正整数
两个方法都是左边大于右边返回正数,默认从小到大排列
// 定制排序的用法,此时从大到小排列
Collections.sort(arrayList, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});