亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

站在巨人肩膀上看源碼-Map

xiaotianyi / 721人閱讀

摘要:在學(xué)習(xí)的實(shí)現(xiàn)類是基于實(shí)現(xiàn)的前,先來(lái)介紹下接口及其下的子接口先看下的架構(gòu)圖如上圖是映射接口,中存儲(chǔ)的內(nèi)容是鍵值對(duì)。是繼承于的接口。中的內(nèi)容是排序的鍵值對(duì),排序的方法是通過(guò)比較器。

Map

在學(xué)習(xí)Set(Set的實(shí)現(xiàn)類是基于Map實(shí)現(xiàn)的)、HashMap、TreeMap前,先來(lái)介紹下Map接口及其下的子接口.
先看下Map的架構(gòu)圖:

如上圖:
(01) Map 是映射接口,Map中存儲(chǔ)的內(nèi)容是鍵值對(duì)(key-value)。
(02) AbstractMap 是繼承于Map的抽象類,它實(shí)現(xiàn)了Map中的大部分API。其它Map的實(shí)現(xiàn)類可以通過(guò)繼承AbstractMap來(lái)減少重復(fù)編碼。
(03) SortedMap 是繼承于Map的接口。SortedMap中的內(nèi)容是排序的鍵值對(duì),排序的方法是通過(guò)比較器(Comparator)。
(04) NavigableMap 是繼承于SortedMap的接口。相比于SortedMap,NavigableMap有一系列的導(dǎo)航方法;如"獲取大于/等于某對(duì)象的鍵值對(duì)"、“獲取小于/等于某對(duì)象的鍵值對(duì)”等等。
(05) TreeMap 繼承于AbstractMap,且實(shí)現(xiàn)了NavigableMap接口;因此,TreeMap中的內(nèi)容是“有序的鍵值對(duì)”!
(06) HashMap 繼承于AbstractMap,但沒(méi)實(shí)現(xiàn)NavigableMap接口;因此,HashMap的內(nèi)容是“鍵值對(duì),但不保證次序”!
(07) Hashtable 雖然不是繼承于AbstractMap,但它繼承于Dictionary(Dictionary也是鍵值對(duì)的接口),而且也實(shí)現(xiàn)Map接口;因此,Hashtable的內(nèi)容也是“鍵值對(duì),也不保證次序”。但和HashMap相比,Hashtable是線程安全的,而且它支持通過(guò)Enumeration去遍歷。
(08) WeakHashMap 繼承于AbstractMap。它和HashMap的鍵類型不同,WeakHashMap的鍵是“弱鍵”(僅自身對(duì)key有引用,沒(méi)有其他的引用了)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69628.html

相關(guān)文章

  • 站在巨人肩膀上看源碼-HashSet

    摘要:實(shí)際運(yùn)行上面程序?qū)⒖吹匠绦蜉敵?,這是因?yàn)榕袛鄡蓚€(gè)對(duì)象相等的標(biāo)準(zhǔn)除了要求通過(guò)方法比較返回之外,還要求兩個(gè)對(duì)象的返回值相等。通常來(lái)說(shuō),所有參與計(jì)算返回值的關(guān)鍵屬性,都應(yīng)該用于作為比較的標(biāo)準(zhǔn)。 1.HashSet概述:   HashSet實(shí)現(xiàn)Set接口,由哈希表(實(shí)際上是一個(gè)HashMap實(shí)例)支持。它不保證set 的迭代順序;特別是它不保證該順序恒久不變。此類允許使用null元素。Hash...

    DevTTL 評(píng)論0 收藏0
  • 站在巨人肩膀上看源碼-HashMap(基于jdk1.8)

    摘要:而中,采用數(shù)組鏈表紅黑樹(shù)實(shí)現(xiàn),當(dāng)鏈表長(zhǎng)度超過(guò)閾值時(shí),將鏈表轉(zhuǎn)換為紅黑樹(shù),這樣大大減少了查找時(shí)間。到了,當(dāng)同一個(gè)值的節(jié)點(diǎn)數(shù)不小于時(shí),不再采用單鏈表形式存儲(chǔ),而是采用紅黑樹(shù),如下圖所示。 一. HashMap概述 在JDK1.8之前,HashMap采用數(shù)組+鏈表實(shí)現(xiàn),即使用鏈表處理沖突,同一hash值的節(jié)點(diǎn)都存儲(chǔ)在一個(gè)鏈表里。但是當(dāng)位于一個(gè)桶中的元素較多,即hash值相等的元素較多時(shí),通過(guò)...

    劉玉平 評(píng)論0 收藏0
  • 站在巨人肩膀上看源碼-ArrayList

    摘要:源碼剖析的源碼如下加入了比較詳細(xì)的注釋序列版本號(hào)基于該數(shù)組實(shí)現(xiàn),用該數(shù)組保存數(shù)據(jù)中實(shí)際數(shù)據(jù)的數(shù)量帶容量大小的構(gòu)造函數(shù)。該方法被標(biāo)記了,調(diào)用了系統(tǒng)的代碼,在中是看不到的,但在中可以看到其源碼。 ArrayList簡(jiǎn)介 ArrayList是基于數(shù)組實(shí)現(xiàn)的,是一個(gè)動(dòng)態(tài)數(shù)組,其容量能自動(dòng)增長(zhǎng),類似于C語(yǔ)言中的動(dòng)態(tài)申請(qǐng)內(nèi)存,動(dòng)態(tài)增長(zhǎng)內(nèi)存。ArrayList不是線程安全的,只能用在單線程環(huán)境下,多...

    ThinkSNS 評(píng)論0 收藏0
  • 站在巨人肩膀上看源碼-LinkedList

    摘要:在閱讀源碼之前,我們先對(duì)的整體實(shí)現(xiàn)進(jìn)行大致說(shuō)明實(shí)際上是通過(guò)雙向鏈表去實(shí)現(xiàn)的。獲取的最后一個(gè)元素由于是雙向鏈表而表頭不包含數(shù)據(jù)。實(shí)際上是判斷雙向鏈表的當(dāng)前節(jié)點(diǎn)是否達(dá)到開(kāi)頭反向迭代器獲取下一個(gè)元素。 第1部分 LinkedList介紹 LinkedList簡(jiǎn)介 LinkedList 是一個(gè)繼承于AbstractSequentialList的雙向鏈表。它也可以被當(dāng)作堆棧、隊(duì)列或雙端隊(duì)列進(jìn)行操...

    learn_shifeng 評(píng)論0 收藏0
  • 站在巨人肩膀上看源碼-ConcurrentHashMap

    摘要:一出現(xiàn)背景線程不安全的因?yàn)槎嗑€程環(huán)境下,使用進(jìn)行操作會(huì)引起死循環(huán),導(dǎo)致利用率接近,所以在并發(fā)情況下不能使用。是由數(shù)組結(jié)構(gòu)和數(shù)組結(jié)構(gòu)組成。用來(lái)表示需要進(jìn)行的界限值。也是,這使得能夠讀取到最新的值而不需要同步。 一、出現(xiàn)背景 1、線程不安全的HashMap 因?yàn)槎嗑€程環(huán)境下,使用Hashmap進(jìn)行put操作會(huì)引起死循環(huán),導(dǎo)致CPU利用率接近100%,所以在并發(fā)情況下不能使用HashMap。...

    n7then 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<