天天看點

java的比較器_java兩種比較器總結

【Comparable和Comparator源碼】

java.lang.Comparablepublic interface Comparable{public intcomparaTo(T o);

}------------------------------------------------------------------java.util.Comparatorpublic interface Comparator{intcompare(T o1,T o2);booleanequals(Object obj);

}

【Comparable接口】

若一個類實作了Comparable接口,就意味着該類支援排序。假設存在實作了 Comparable接口的類的對象的List清單(或數組),則該List清單(或數組)可以通過Collections.sort(或Arrays.sort)進行排序。

【Comparator接口】

我們需要控制某個類的次序,而該類不支援排序(即沒有實作Comparable接口)。那麼,我們可以建立一個該類的比較器,這個比較器隻需要實作Comparator。若一個類實作了Comparator接口,則它一定要實作compare(T o1,T o2)方法,但不一定要實作equals(Object obj)方法;

【兩者比較】

1.Comparable是排序接口;若一個類實作了Comparable接口,就意味着“該類支援排序”;而Comparator是比較器;我們若需要控制某個類的次序,可以建立一個“該類的比較器”來進行排序。

2.Comparable相當于“内部比較器”,而Comparator相當于“外部比較器”。

原文:http://www.cnblogs.com/hwu2014/p/4479211.html