Comparable接口
属于java.lang包,需要重写compareTo(Object obj)方法,obj表示要比较的对象
public void test1(){
Integer i1 = 3;
Integer i2 = 7;
System.out.println(i2.compareTo(i1));//1
}
在Integer、Character等类中都实现了此接口。
public int compareTo(Integer anotherInteger) {
return compare(this.value, anotherInteger.value);
}
public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
Comparator接口
属于java.util包,需要重写compare(Object obj1, Object obj2)实现排序
Collections类中的sort方法可以传入此接口的实现类实现排序
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
Collections.sort(arrayList, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;//倒序
}
});