1.ArrayList,LinkedList是線性表的兩個典型實現:前者是基於數組的線性表,後者是基於鏈的線性表。數組
2.各類集合性能比較安全
集合名稱 | 實現機制 | 隨機訪問排名 | 迭代操做排名 | 插入操做排名 | 刪除操做排名性能
數組 連續內存區保存元素 1 不支持 不支持 不支持線程
ArrayList/ArrayDeque 以數組保存元素 2 2 2 2內存
Vector 以數組保存元素 3 3 3 3io
LinkedList 以鏈表保存元素 4 1 1 1table
3.HashSet,TreeSet,ArrayList,ArrayDeque,LinkedList,HashMap,TreeMap都是線程不安全的,經過Collectioins.synchronizedXXX()方法能夠得到其線程安全版本jdk
實例:List
Collection c = Collections.synchronizedCollection(new ArrayList());
List list = Collections.synchronizedList(new ArrayList());
Set s = Collections.synchronizedSet(new HashSet());
Map m = Collections.synchronizedMap(new HashMap());方法
4.線程安全的集合Vector,Stack,Hashtable 都是在jdk1.1就出現 性能較低 通常不推薦使用
5.Hashtable和HashMap主要的兩點區別 (1)Hashtable是線程安全實現,HashMap是線程不安全的實現 (2)Hashtable不容許null做爲key和value,試圖放入的話會報NullPointerException