JAVA Collection筆記(2012/9/19)

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