天天看點

java的Comparable 與Comparator, 最簡單的方式告訴你差別!! -1,1,0到底是怎麼會事兒?

1.為了讓java的兩個對象有可比較性,是以有了comparable ,那麼為什麼還要有comparator呢?

因為如果源碼定義中沒有定義comparable ,在外面定義的時候,為了讓兩個元素可以比較,但又不破壞源碼,是以有了外面的comparator比較器:看看兩者的函數就知道了,

class Student implements Comparable<Student>{

};

public class MyComparator implements Comparator<Student> {

}

調用的時候穿進去:Collections.sort(list,new MyComparator());

2.我們看到的-1,1,0到底是怎麼回事呢?

我們知道-1表示 a compare b 的時候 ,a 小于b, 這個時候a 就會放在b的前面,那麼如果明明a 是大于 b的,但是 a compare b傳回-1,那麼a就會放到前面,也就是倒序!!!!