JAVA两类比较器的区别(Comparable,Comparator)
生活随笔
收集整理的這篇文章主要介紹了
JAVA两类比较器的区别(Comparable,Comparator)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內部比較器Comparable
一個類實現了Comparable接口,那么它就有了一個內部比較器,實現了Comparable的類可以調用Collections工具類或Arrays的sort方法進行比較
外部比較器Comparator
一個類實現了Comparator接口,那么它就是一個外部比較器,我們可以看到在集合對象的sort方法里,需要傳入一個外部比較器對象。
兩者區別
大多數情況下,我們用到的類都是已經封裝好的類,無法進行修改,也就是無法更改其內部構造器的規則,這時候我們需要一個外部比較器來實現我們自己想要的比較規則。當我們自己寫的類就可以用內部比較器,之前我看到一篇文章講的很好,自定義類用內部比較器可以達到高內聚,因為這個比較規則只有這個類才能用。
不過如果這個自定義類在很多種場合具有不同的比較規則,比如在計算成績時用成績屬性比較,在統計年齡時,用年齡屬性比較,這時候就可以用外部比較器了,內部構造器通過一個標志位也可以區分什么時候用哪種規則,但是太麻煩了,不如外部比較器簡單明了。
總結
以上是生活随笔為你收集整理的JAVA两类比较器的区别(Comparable,Comparator)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无人驾驶传感器之超声波
- 下一篇: python3数据结构_Python3-