Java Comparable 與 Comparator

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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項(xiàng)目中經(jīng)常會(huì)遇到列表搜索查詢,大部分的查詢是可以通過(guò)sql語(yǔ)句來(lái)實(shí)現(xiàn)的,有些特殊的搜索排序sql則實(shí)現(xiàn)不了,例如中...
    信徒_allen閱讀 2,727評(píng)論 0 1
  • Comparable Comparable 是排序接口,若一個(gè)類實(shí)現(xiàn)了 Comparable 接口,就意味著 “該...
    杰哥長(zhǎng)得帥閱讀 5,195評(píng)論 1 2
  • java中我們要實(shí)現(xiàn)集合元素的比較和排序有兩種方法。一種是讓集合中的元素去實(shí)現(xiàn)Comparable接口,另一種是則...
    趙仝閱讀 752評(píng)論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,811評(píng)論 18 399
  • 【禪語(yǔ)】 ? 是日已過(guò),明日復(fù)來(lái)。一輪明月,幾支葦草,看淡得失,用清靜的心,活好當(dāng)下。 ??? 【悟話】 明月照水...
    武漢如心閱讀 806評(píng)論 7 18

友情鏈接更多精彩內(nèi)容