Comparable
- Comparable 是排序接口,若一個(gè)類實(shí)現(xiàn)了該接口,則意味著該類支持排序
- 實(shí)現(xiàn)了該接口的類,可以通過(guò) Collections.sort 或 Arrys.sort 方法進(jìn)行排序。并且該類的對(duì)象在作為 TreeMap、TreeSet 的元素時(shí),不需要指定比較器
- 該接口僅包含了一個(gè) compareTo 方法
public interface Comparable<T> {
public int compareTo(T o);
}
-
假設(shè)通過(guò) x.compareTo(y) 來(lái)比較 x 和 y 大小
- 返回負(fù)數(shù)意味著 x 比 y 小
- 返回 0 則意味著相等
- 返回 正數(shù) 意味著 x 大于 y
Comparator
- Comparator 是比較器接口,假設(shè)某個(gè)類沒(méi)有實(shí)現(xiàn) Comparable 接口,但又需要排序,那么可以建立一個(gè)該類的比較器來(lái)進(jìn)行排序
- 該接口包含了兩個(gè)方法,若一個(gè)類要實(shí)現(xiàn) Comparator 接口,那么必須實(shí)現(xiàn)該 compare 方法,但可以不實(shí)現(xiàn) equals 方法(這是因?yàn)槿魏晤惗祭^承自 Object,默認(rèn)都是已經(jīng)實(shí)現(xiàn)了 equals 方法的)
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}
-
假設(shè)通過(guò) compare(T o1, T o2) 比較 o1、o2 大小
- 返回負(fù)數(shù),意味著 o1 比 o2 小
- 返回零,意味著 o1 等于 o2
- 返回正數(shù),意味著 o1 大于 o2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。