JDK源碼閱讀之Entry<K,V>

Entry<K,V>

接口Entry<K,V> 是Map<K,V>的內(nèi)部接口,該接口是用來表示一個(gè)鍵值對(duì)的,一個(gè)這樣的實(shí)例就包含K類型的鍵和V類型的值。包含獲取Key、獲取value以及設(shè)置value的方法,同時(shí)需要重寫equals和hashCode方法。
該接口有四中方式獲取比較器:
如果K類型或者V類型的父類包含K和V實(shí)現(xiàn)了Comparable接口,則可以通過下面方式獲取比較器:

 public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey() {
            return (Comparator<Map.Entry<K, V>> & Serializable)
                (c1, c2) -> c1.getKey().compareTo(c2.getKey());
        }
 public static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue() {
            return (Comparator<Map.Entry<K, V>> & Serializable)
                (c1, c2) -> c1.getValue().compareTo(c2.getValue());
        }

如果K類型或者V類型的父類包含K和V沒有實(shí)現(xiàn)Comparable接口,則需要對(duì)齊父類構(gòu)建自定義比較器(Comparator<? super K> cmp):

       
        public static <K, V> Comparator<Map.Entry<K, V>> comparingByKey(Comparator<? super K> cmp) {
            Objects.requireNonNull(cmp);
            return (Comparator<Map.Entry<K, V>> & Serializable)
                (c1, c2) -> cmp.compare(c1.getKey(), c2.getKey());
        }

      
        public static <K, V> Comparator<Map.Entry<K, V>> comparingByValue(Comparator<? super V> cmp) {
            Objects.requireNonNull(cmp);
            return (Comparator<Map.Entry<K, V>> & Serializable)
                (c1, c2) -> cmp.compare(c1.getValue(), c2.getValue());
        }
    }

通過這個(gè)例子我們也能夠獲取Comparator和Comparable的不同

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對(duì)于byte類型而言...
    龍貓小爺閱讀 4,436評(píng)論 0 16
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,755評(píng)論 11 349
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,644評(píng)論 0 3
  • 這幾天,閑來無事的我看了幾集新出的韓劇《灰姑娘與四騎士》,這兩集看下來,驚得我出了一身的冷汗,好久不追劇的我真的不...
    尚巾林閱讀 810評(píng)論 0 2
  • 每次開始寫內(nèi)心想法時(shí)都是非常的激動(dòng),語無倫次,不知道怎么形容。 每天睡覺都做夢夢到被分手,被拋棄,那種感覺非常強(qiáng)烈...
    榛子那個(gè)女孩閱讀 366評(píng)論 0 0

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