天天看點

Comparable 和 Comparator的比較

Comparable是排序接口,若一個類實作了Comparable接口,就意味着“該類支援排序”。而Comparator是比較器,我們若需要控制某個類的次序,可以建立一個“該類的比較器”來進行排序。  Comparable相當于“内部比較器”,而Comparator相當于“外部比較器”。  兩種方法各有優劣, 用Comparable 簡單, 隻要實作Comparable 接口的對象直接就成為一個可以比較的對象,但是需要修改源代碼。 用Comparator 的好處是不需要修改源代碼, 而是另外實作一個比較器, 當某個自定義的對象需要作比較的時候,把比較器和對象一起傳遞過去就可以比大小了, 并且在Comparator 裡面使用者可以自己實作複雜的可以通用的邏輯,使其可以比對一些比較簡單的對象,那樣就可以節省很多重複勞動了。

  上文轉自:https://blog.csdn.net/qq_32575047/article/details/78959948

  補充:

  Comparable 是在集合内部定義的方法實作的排序; Comparator 是在集合外部實作的排序

   Comparator位于包java.util下,而Comparable位于包java.lang下