Comparable 和 Comparator 區別和聯繫

關於:Comparable 簡單使用
關於:Comparator 簡單使用


  • 兩者都是做比較排序的接口,相對來說我們可以把Comparable理解爲內部比較器,Comparator理解爲外部比較器。
  • 再同時實現了這兩種比較器的時候,Comparator 的優先級較高
  • Comparable:需要進行排序的實體去實現此接口,需要修改源碼,耦合度較高。
  • Comparator:新建java類去實現此接口,不需要修改源碼,耦合度相對不高。
  • 這裏提到的耦合度並不是說哪個好哪個不好,存在即是真理,只是相對而言。舉例:開發過程中突然有一個類涉及到排序相關的業務,考慮到儘量不修改源碼的原則,可以考慮去實現Comparator接口。再舉例:一個原本就用來做排序的類,有很明顯的排序關係像字母順序、數值排序,再創建初期我們就要考慮去實現Comparable。
  • Comparator 的 int compare(T o1,T o2) Comparable 的 int compareTo(T o) 返回都是 int 類型:負整數、零或正整數,根據此對象是小於、等於還是大於指定對象。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章