成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

xiaotianyi / 656人閱讀

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

Map

在學(xué)習(xí)Set(Set的實(shí)現(xiàn)類是基于Map實(shí)現(xiàn)的)、HashMap、TreeMap前,先來介紹下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)類可以通過繼承AbstractMap來減少重復(fù)編碼。
(03) SortedMap 是繼承于Map的接口。SortedMap中的內(nèi)容是排序的鍵值對(duì),排序的方法是通過比較器(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,但沒實(shí)現(xiàn)NavigableMap接口;因此,HashMap的內(nèi)容是“鍵值對(duì),但不保證次序”!
(07) Hashtable 雖然不是繼承于AbstractMap,但它繼承于Dictionary(Dictionary也是鍵值對(duì)的接口),而且也實(shí)現(xiàn)Map接口;因此,Hashtable的內(nèi)容也是“鍵值對(duì),也不保證次序”。但和HashMap相比,Hashtable是線程安全的,而且它支持通過Enumeration去遍歷。
(08) WeakHashMap 繼承于AbstractMap。它和HashMap的鍵類型不同,WeakHashMap的鍵是“弱鍵”(僅自身對(duì)key有引用,沒有其他的引用了)。

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

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

相關(guān)文章

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

    摘要:實(shí)際運(yùn)行上面程序?qū)⒖吹匠绦蜉敵?,這是因?yàn)榕袛鄡蓚€(gè)對(duì)象相等的標(biāo)準(zhǔn)除了要求通過方法比較返回之外,還要求兩個(gè)對(duì)象的返回值相等。通常來說,所有參與計(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í)現(xiàn),當(dāng)鏈表長度超過閾值時(shí),將鏈表轉(zhuǎn)換為紅黑樹,這樣大大減少了查找時(shí)間。到了,當(dāng)同一個(gè)值的節(jié)點(diǎn)數(shù)不小于時(shí),不再采用單鏈表形式存儲(chǔ),而是采用紅黑樹,如下圖所示。 一. HashMap概述 在JDK1.8之前,HashMap采用數(shù)組+鏈表實(shí)現(xiàn),即使用鏈表處理沖突,同一hash值的節(jié)點(diǎn)都存儲(chǔ)在一個(gè)鏈表里。但是當(dāng)位于一個(gè)桶中的元素較多,即hash值相等的元素較多時(shí),通過...

    劉玉平 評(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簡介 ArrayList是基于數(shù)組實(shí)現(xiàn)的,是一個(gè)動(dòng)態(tài)數(shù)組,其容量能自動(dòng)增長,類似于C語言中的動(dòng)態(tài)申請(qǐng)內(nèi)存,動(dòng)態(tài)增長內(nèi)存。ArrayList不是線程安全的,只能用在單線程環(huán)境下,多...

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

    摘要:在閱讀源碼之前,我們先對(duì)的整體實(shí)現(xiàn)進(jìn)行大致說明實(shí)際上是通過雙向鏈表去實(shí)現(xiàn)的。獲取的最后一個(gè)元素由于是雙向鏈表而表頭不包含數(shù)據(jù)。實(shí)際上是判斷雙向鏈表的當(dāng)前節(jié)點(diǎn)是否達(dá)到開頭反向迭代器獲取下一個(gè)元素。 第1部分 LinkedList介紹 LinkedList簡介 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)組成。用來表示需要進(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元查看
<