天天看點

常見集合的特點

首先上圖說話,通過圖檔最直覺的了解集合體系

簡略版  (其中虛線為接口,實線為接口實線類)

常見集合的特點

詳細版       (其中虛線為接口,實線為接口實線類)

常見集合的特點

常見集合的特點

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需實作比較器