Java集合概要

Java集合主要分爲三種類型:Set、List 、Map,其中Set和List均實現了Collection接口,Map爲單獨的一類接口。集合類存儲的是特定的類型,不能爲基本類型。

其接口主要實現和繼承關係如下:

Collection
├List
│├LinkedList  (底層是雙向鏈表實現)
│├ArrayList (底層爲對象數組,容量默認爲10,擴容1.5,即每次增長原來的0.5倍)
│└Vector(底層爲對象數組,容量默認爲10,可按規定值擴容,默認爲每次增長爲原來的1倍,線程安全)
│ └Stack(繼承Vector,操作都是對vectort底層操作的封裝)
├Set 
│ ├ hasSet (底層是由hashMap實現的,hashMap 的key存儲hasSet的元素,value採用默認靜的object)
│ ├treeSet(底層爲treeMap實現的,key存儲元素,value採用靜態的object)
├Queue
    ├priorityQueue

Map
├Hashtable(基本同hashMap,默認爲11,只不過hashtable爲線程安全的,不允許有null值,put, get 都加鎖)
├HashMap(Entry鏈表+數組,默認容量爲16,負載因子爲0.75;長度大於n*16*0.75則容量增大一倍)
└WeakHashMap
└LinkedHashMap(底層爲hashMap的Entry雙向鏈表,繼承自hashMap)
└TreeMap(底層爲紅黑樹實現,繼承自AbstractMap,而AbstractMap又實現了Map接口)
 LSortedMap
├concurrentHashMap(採用鎖分離 來保證大併發的效率,Segment數組結構和HashEntry數組結構組成,table[]--hashTable  ,segments[]--table;put加鎖,get不加鎖)

接下來的幾篇會詳細介紹幾個常用的集合類及其源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章