一張圖讓你看清Java集合類(Java集合類的總結)


如今關於Java集合類的文章非常多,可是我近期看到一個非常有意思圖片,基本上把Java集合的整體框架都給展現出來了。非常直觀。


假設發現圖片看不清楚。點此處看大圖


在這里,集合類分為了Map和Collection兩個大的類別。

處於圖片左上角的那一塊灰色里面的四個類(Dictionary、HashTable、Vector、Stack)都是線程安全的,可是它們都是JDK的老的遺留類。如今基本都不怎么使用了,都有了相應的取代類。當中Map是用來取代圖片中左上角的那個Dictionary抽象類(Map的官方文檔里面有說明)。

官方推薦使用Map接口來取代它。相同對於HashTable。官方推薦ConcurrentHashMap來取代。接着以下的Vector是List以下的一個實現類。


接着最上面的粉紅色部分是集合類全部接口關系圖。

當中Map的結構比較簡單,而Collection的結構就相對復雜一些。Collection有三個繼承接口:List、Queue和Set。


接下來的綠色部分則是集合類的主要實現類了。

這也是我們最常常使用的集合類了。


依照實現接口分類:

實現Map接口的有:EnumMap、IdentityHashMap、HashMap、LinkedHashMap、WeakHashMap、TreeMap

實現List接口的有:ArrayList、LinkedList

實現Set接口的有:HashSet、LinkedHashSet、TreeSet

實現Queue接口的有:PriorityQueue、LinkedList、ArrayQueue


依據底層實現的數據結構分類:

底層以數組的形式實現:EnumMap、ArrayList、ArrayQueue
底層以鏈表的形式實現:LinkedHashSet、LinkedList、LinkedHashMap
底層以hash table的形式實現:HashMap、HashSet、LinkedHashMap、LinkedHashSet、WeakHashMap、IdentityHashMap
底層以紅黑樹的形式實現:TreeMap、TreeSet
底層以二叉堆的形式實現:PriorityQueue


最下方的一個整塊都是java.util.concurrent包里面的類,依照包名我們就能夠知道這個包里面的類都是用來處理Java編程中各種並發場景的。


下篇預告:對中間的經常使用集合類(綠色部分的經常使用實現類)進行一個更加具體的解讀。

工具推薦:http://grepcode.com/。

閱讀代碼神器。這個源代碼閱讀網站不但包括了絕大部分的Java類庫源代碼,並且對源代碼中間的凝視、跳轉等做了非常好的優化。有了它,保證你的源代碼閱讀效率大大提升。

原圖出處:http://pierrchen.blogspot.com/2014/03/java-collections-framework-cheat-sheet.html






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM