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