国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

xiaotianyi / 651人閱讀

摘要:在學習的實現類是基于實現的前,先來介紹下接口及其下的子接口先看下的架構圖如上圖是映射接口,中存儲的內容是鍵值對。是繼承于的接口。中的內容是排序的鍵值對,排序的方法是通過比較器。

Map

在學習Set(Set的實現類是基于Map實現的)、HashMap、TreeMap前,先來介紹下Map接口及其下的子接口.
先看下Map的架構圖:

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69628.html

相關文章

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

    摘要:實際運行上面程序將看到程序輸出,這是因為判斷兩個對象相等的標準除了要求通過方法比較返回之外,還要求兩個對象的返回值相等。通常來說,所有參與計算返回值的關鍵屬性,都應該用于作為比較的標準。 1.HashSet概述:   HashSet實現Set接口,由哈希表(實際上是一個HashMap實例)支持。它不保證set 的迭代順序;特別是它不保證該順序恒久不變。此類允許使用null元素。Hash...

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

    摘要:而中,采用數組鏈表紅黑樹實現,當鏈表長度超過閾值時,將鏈表轉換為紅黑樹,這樣大大減少了查找時間。到了,當同一個值的節點數不小于時,不再采用單鏈表形式存儲,而是采用紅黑樹,如下圖所示。 一. HashMap概述 在JDK1.8之前,HashMap采用數組+鏈表實現,即使用鏈表處理沖突,同一hash值的節點都存儲在一個鏈表里。但是當位于一個桶中的元素較多,即hash值相等的元素較多時,通過...

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

    摘要:源碼剖析的源碼如下加入了比較詳細的注釋序列版本號基于該數組實現,用該數組保存數據中實際數據的數量帶容量大小的構造函數。該方法被標記了,調用了系統的代碼,在中是看不到的,但在中可以看到其源碼。 ArrayList簡介 ArrayList是基于數組實現的,是一個動態數組,其容量能自動增長,類似于C語言中的動態申請內存,動態增長內存。ArrayList不是線程安全的,只能用在單線程環境下,多...

    ThinkSNS 評論0 收藏0
  • 站在巨人肩膀上看源碼-LinkedList

    摘要:在閱讀源碼之前,我們先對的整體實現進行大致說明實際上是通過雙向鏈表去實現的。獲取的最后一個元素由于是雙向鏈表而表頭不包含數據。實際上是判斷雙向鏈表的當前節點是否達到開頭反向迭代器獲取下一個元素。 第1部分 LinkedList介紹 LinkedList簡介 LinkedList 是一個繼承于AbstractSequentialList的雙向鏈表。它也可以被當作堆棧、隊列或雙端隊列進行操...

    learn_shifeng 評論0 收藏0
  • 站在巨人肩膀上看源碼-ConcurrentHashMap

    摘要:一出現背景線程不安全的因為多線程環境下,使用進行操作會引起死循環,導致利用率接近,所以在并發情況下不能使用。是由數組結構和數組結構組成。用來表示需要進行的界限值。也是,這使得能夠讀取到最新的值而不需要同步。 一、出現背景 1、線程不安全的HashMap 因為多線程環境下,使用Hashmap進行put操作會引起死循環,導致CPU利用率接近100%,所以在并發情況下不能使用HashMap。...

    n7then 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<