Collection接口
-
List有序的 可重復(fù)的
- ArrayList:Object數(shù)組
- LinkedList: 雙向鏈表
- Vector: Object數(shù)組
-
Set存儲無序的 不可重復(fù)的
- HashSet:基于 HashMap 實現(xiàn)的酒觅,底層采用 HashMap 來保存元素
- LinkedHashSet:基于LinkedHashMap 實現(xiàn)
- TreeSet: 紅黑樹(自平衡的排序二叉樹)
Map 接口 key-value鍵值對
HashMap:JDK8之前HashMap由數(shù)組+鏈表組成的,數(shù)組是HashMap的主體稻轨,鏈表則是主要為了解決哈希沖突而存在的(“拉鏈法”解決沖突)胯府。JDK8以后在解決哈希沖突時有了較大的變化肪跋,當(dāng)鏈表長度大于閾值(默認為8)時契沫,將鏈表轉(zhuǎn)化為紅黑樹最欠,以減少搜索時間
LinkedHashMap: 繼承自 HashMap荚斯,所以它的底層仍然是基于拉鏈式散列結(jié)構(gòu)即由數(shù)組和鏈表或紅黑樹組成。另外霉颠,LinkedHashMap 在上面結(jié)構(gòu)的基礎(chǔ)上对碌,增加了一條雙向鏈表,使得上面的結(jié)構(gòu)可以保持鍵值對的插入順序蒿偎。同時通過對鏈表進行相應(yīng)的操作朽们,實現(xiàn)了訪問順序相關(guān)邏輯
TreeMap:紅黑樹(自平衡的排序二叉樹)
Hashtable: 數(shù)組+鏈表組成的,數(shù)組是 HashMap 的主體诉位,鏈表則是主要為了解決哈希沖突而存在的