java.utils 中的幾種Map,List,Set

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)
相關文章
相關標籤/搜索