Java8源碼-Set整體架構__Java

來源:互聯網
上載者:User

前面一段時間,我們已經對List和Map的實作類別進行了學習和總結。接下來,我們開始學習Set。相信學習了Map之後,學習Set會容易很多。本文主要介紹Set的整體結構。 Set的整體結構

Set介面繼承了Collection介面。特點是不儲存重複的元素。

AbstractSet

是一個抽象類別,它繼承於AbstractCollection,實現了Set。AbstractCollection提供了Set介面的骨幹實現,從而最大限度地減少了實現此介面所需的工作。

SortedSet

進一步提供關於元素的總體排序的Set。這些元素使用其自然順序進行排序,或者根據通常在建立有序set時提供的Comparator進行排序。該set的迭代器將按元素升序遍曆set。提供了一些附加的操作來利用這種排序。

NavigableSet

擴充的SortedSet,具有了為給定搜尋目標報告最接近匹配項的導航方法。

HashSet

依賴於雜湊表的實現,實際上是個HashMap的執行個體。它不保證set的迭代順序;特別是它不保證該順序恒久不變。此類允許使用null 元素。

TreeSet

基於TreeMap的NavigableSet實現。使用元素的自然順序對元素進行排序,或者根據建立set時提供的Comparator進行排序,具體取決於使用的構造方法。

LinkedHashSet

具有可預知迭代順序的Set介面的雜湊表和連結清單實現。繼承HashSet ,具有HashSet的查詢速度,維護著一個運行於所有條目的雙重連結清單。此連結清單定義了迭代順序,即按照將元素插入到set中的順序(插入順序)進行迭代。注意,插入順序不受在 set 中重新插入的 元素的影響。素插入的次序顯示。

本文已收錄於Java8容器源碼劄記專欄。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.