首先上圖說話,通過圖檔最直覺的了解集合體系
簡略版 (其中虛線為接口,實線為接口實線類)

詳細版 (其中虛線為接口,實線為接口實線類)
常見集合的特點
Collection:無序,不唯一
直接接口List 有序,不唯一,允許有Null值
List接口直接實作類: vector(已淘汰)
底層實作是數組,有序,不唯一,允許有null值,既然是數組,那就是查詢修改快,增删慢,線程同步,安全;
ArrayList
底層實作是數組,有序,不唯一,允許有null值,同樣具有數組的特點,查詢修改快,增加删除慢,線程異步,不安全;
LinkedList
底層實作是連結清單,有序,不唯一,允許有null值,既然是連結清單,那就是增删快,查改慢,線程異步,不安全;
直接接口set 無序,唯一,最多允許一個NULL值;
set接口直接實作類 hashset
底層實作為hashmap(下面會提到),無序,唯一,最多允許一個NULL值,操作資料塊,線程同步,不安全;
因為其中元素唯一,有序是以元素需要重寫hashcode()方法與equals()方法
hashset直接子類 LinkedHashSet
底層實作為LinkedHashMap 有序,唯一,最多允許一個NULL值,操作資料塊,線程同步,安全;
treeset
底層實作為TreeMap,注意這裡是有序,唯一,不允許有NULL值,操作資料快,線程異步,不安全,集合中元素需要實作比較器
Map 從上圖可以看出 Map和Collection都是繼承了 Iterable接口
Key-value鍵值對,無序,key唯一,最多允許有一個null值,value不唯一,允許有null值
直接實作類hashtable(已淘汰),注意這裡是實作類
底層為散清單即 哈希表,無序,不允許有NULL值,操作資料快,線程同步,安全,(注意這裡是線程同步)key需重寫
hashcode()跟equals()是方法
直接實作類hashmap
底層也是哈希表,無序,key唯一,最多允許一個空值,values不唯一,允許有NULL值,操作資料快,
線程異步,不安全,key值需要重寫hashcode()方法和equals()方法
hashmap直接子類linkedhahsmap
底層為連結清單,有序(注意這裡是有序)key唯一,最多允許一個NULL值
value不唯一,允許有NULL值,操作資料快,線程異步,不安全;
Map直接實作子類treemap
底層為紅黑樹,有序,唯一,key唯一,不允許有NULL值,value不唯一,允許有NULL值
操作資料快,線程異步,不安全。key需實作比較器