日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Comparable接口与Comparator接口

發(fā)布時間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Comparable接口与Comparator接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【Comparable和Comparator源碼】

java.lang.Comparablepublic interface Comparable<T> {public int comparaTo(T o); }------------------------------------------------------------------java.util.Comparatorpublic interface Comparator<T> {int compare(T o1,T o2);boolean equals(Object obj); }

【Comparable接口】

1. 若一個類實現了Comparable接口,就意味著該類支持排序。假設存在實現了 Comparable接口的類的對象的List列表(或數組),則該List列表(或數組)可以通過Collections.sort(或Arrays.sort)進行排序。

2.?一個類實現了comparable接口表明這個類的對象之間是可以互相比較的。如果用數學語言描述的話就是這個類的對象組成的集合中存在一個全序。這樣,這個類對象組成的集合就可以使用 Sort 方法排序了。

【Comparator接口】

1. 我們需要控制某個類的次序,而該類不支持排序(即沒有實現Comparable接口)。那么,我們可以創(chuàng)建一個該類的比較器,這個比較器只需要實現Comparator。若一個類實現了Comparator接口,則它一定要實現compare(T o1,T o2)方法,但不一定要實現equals(Object obj)方法;

2.?如果類的設計師沒有考慮到Compare的問題而沒有實現Comparable接口,可以通過Comparator來實現比較算法進行排序;為了使用不同的排序標準做準備,比如:升序、降序

【兩者比較】

1.?前者應該比較固定,和一個具體類相綁定,而后者比較靈活,它可以被用于各個需要比較功能的類使用

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

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

4.?Comparable是通用的接口,用戶可以實現它來完成自己特定的比較,而Comparator可以看成是一種算法的實現,在需要容器集合實現比較功能的時候,來指定這個比較器,這可以看成是一種設計模式,將算法和數據分離。

?

轉載于:https://www.cnblogs.com/hwu2014/p/4479211.html

總結

以上是生活随笔為你收集整理的Comparable接口与Comparator接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。