總共有兩大接口:Collection 和Map ,一個元素集合,一個是鍵值對集合; 其中List和Set接口繼承了Collection接口,一個是有序元素集合,一個是無序元素集合;而ArrayList和 LinkedList 實現了List接口,HashSet實現了Set接口,這幾個都比較經常使用; HashMap 和HashTable實現了Map接口,而且HashTable是線程安全的,可是HashMap性能更好;java
注意:全部集合(List、Set以及Map)都實現了Cloneable(原型模式)和Serializable(序列化)數組
java.util.Collection [I]安全
|—java.util.List [I]性能
|—java.util.ArrayList [C]spa
|—java.util.LinkedList [C]線程
|—java.util.Vector [C]對象
|—java.util.Stack[C]排序
|—java.util.Set [I]繼承
|—java.util.HashSet [C]接口
|—java.util.SortedSet [I]
|—java.util.TreeSet [C]
java.util.Map [I]
|—java.util.SortedMap [I]
|—java.util.TreeMap [C]
|—java.util.Hashtable [C]
|—java.util.HashMap [C]
|—java.util.LinkedHashMap [C]
|—java.util.WeakHashMap [C]
Java集合類裏最基本的接口有:
Collection:單列集合的根接口
List:元素有序 可重複
ArrayList:相似一個長度可變的數組 。適合查詢,不適合增刪
LinkedList:底層是雙向循環鏈表。適合增刪,不適合查詢。
Set:元素無序,不可重複
HashSet:根據對象的哈希值肯定元素在集合中的位置
TreeSet: 以二叉樹的方式存儲元素,實現了對集合中的元素排序
Map:雙列集合的根接口,用於存儲具備鍵(key)、值(value)映射關係的元素。
HashMap:用於存儲鍵值映射關係,不能出現重複的鍵key
TreeMap:用來存儲鍵值映射關係,不能出現重複的鍵key,全部的鍵按照二叉樹的方式排列