comparable 和 Comparator 的区别
comparable 接⼝实际上是出⾃java.lang 包 它有⼀个 compareTo(Object obj) ⽅法⽤来排序comparator 接⼝实际上是出⾃ java.util 包它有⼀个compare(Object obj1, Objectobj2) ⽅法⽤来排序。
⼀般我们需要对⼀个集合使⽤⾃定义排序时,我们就要重写compareTo() ⽅法或compare() ⽅法,
当我们需要对某⼀个集合实现两种排序⽅式,⽐如⼀个 学生对象A中的成绩a要按照大小排序的话,我们可以重写compareTo() ⽅法和使⽤⾃制的Comparator ⽅法或者以两个 Comparator来实现歌名排序和歌星名排序,第⼆种代表我们只能使⽤两个参数版Collections.sort() .
compareTo
compareTo是Comparable接口的方法
public interface Comparable<T> {
public int compareTo(T o);
}
compareTo方法用于比较两个对象的大小,一般写法
@Override
public int compareTo(A o) {
if (o.a==this.a) {
return 0;
}else {
return o.a>a?-1:1;
}
}
用途1:比较
如a.compareTO(b),a小于b返回-1,等于返回0,大于返回1。