Collection:集合,Set和List接口的根接口。提供在集合中添加、刪除、查詢元素的基本操做。
Set:不容許重複的集合
HashSet:默認的底層實現爲HashMap。能夠傳入一個Map做爲底層實現,對應的構造函數簽名爲
public HashSet(Collection<?
extendsE> c)。
LinkedHashSet:繼承HashSet,底層實現爲LinkedHashMap。
TreeSet:按序存儲,默認的底層實現爲TreeMap。能夠傳入一個Map做爲底層實現,對應的構造函數簽名爲TreeSet(NavigableMap<E,Object> m)。
List:容許重複的集合,面向位置的操做,雙向遍歷
ArrayList:底層實現爲數組,默認的初始化大小爲10,每次增長的時候大小增長一半。newCapacity= (oldCapacity * 3)/2 + 1;elementData= Arrays.
copyOf(elementData, newCapacity);
LinkedList:底層實現爲鏈表
Vector:與ArrayList基本同樣,不一樣的是它包含訪問和修改向量的同步化方法(使用
synchronized進行同步)。
Map
java.utils.Map定義了一組Map的接口,java.utils.AbstractMap實現了Map的部分接口。
HashMap:基於哈希的表,哈希值爲key.hashCode的哈希。支持null做爲鍵值,不支持多線程同步。多線程時,須要使用Collections.synchronizedMap方法進行同步。
HashTable:基於哈希的表,哈希值直接使用key.hashCode,爲不支持null做爲鍵值。使用修改計數進行同步,Iterator的修改計數expectedModCount同HashTable的修改計數modCount不一致時拋出異常ConcurrentModificationException。
LinkedHashMap:繼承HashMap,跟蹤訪問/插入軌跡,迭代時按照訪問/插入順序進行迭代。函數簽名以下:
java.util.
LinkedHashMap
.LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
TreeMap:紅黑樹實現的Map,按照key的天然順序進行迭代。
Stack
繼承Vector,添加了棧特有的方法,Vector原來的方法對外可見。(Java繼承默認爲public)