本文主要整理Collection集合相關接口。Collection接口下有兩個子接口List和Set,本着大家淺顯易懂和便於自我整理的思想,本人整理了一個表。
List:List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置。用戶能夠使用索引來訪問List中的元素,這類似於Java的數組。
Set:不包含重複的元素的Collection,即任意的兩個元素e1和e2都有e1.equals(e2)=false,Set最多有一個null元素。很明顯,Set的構造函數有一個約束條件,傳入的Collection參數不能包含重複的元素。
是否有序 | 是否線程同步(安全) | 是否允許空值(null) | 是否允許相同元素 | 存儲形式 | 其他特性 | |
LinkedList | 有序 | 不同步 | 允許 | 允許 | 鏈表數組 |
插入刪除效率高 可做堆棧,隊列,雙向隊列 |
ArrayList | 有序 | 不同步 | 允許 | 允許 | 線性數組 |
查詢效率高 容量不夠默認擴展原來1.5倍 |
Vector | 有序 | 同步 | 允許 | 允許 | 線性數組 |
查詢效率高 容量不夠默認擴展原來2倍 |
Stack | 有序 | 同步 | 允許 | 允許 | 棧(線性數組) | 後進先出 |
HashSet | 無序 | 不同步 | 最多允許1個 | 不允許 | 鏈表數組 | 底層實現爲HashMap,因此不保證迭代順序 |