對於java.util包中幾個集合的一些區別,方便大家的使用:
1.對ArrayList:它是以數組的方式存儲,所以允許按序號索引元素,但是插入元素要涉及元素的移動,所以索引數據快但是插入數據慢,而且沒有實現線程同步,所以安全性較低,還有就是容量的增加是以一半的步調增加。
2.對Vector: 它是以數組的方式存儲,所以允許按序號索引元素,但是插入元素要涉及元素的移動,所以索引數據快但是插入數據慢,而且實現線程同步,所以性能相對較低,還有就是容量的增加是以一倍的步調增加。
3.對LinkedList:它是以鏈表的方式存儲,所以按序號索引元素要前後遍歷速度較慢,但是插入元素快,而且沒有實現線程同步,所以安全性較低,還有就是容量的增加是以一半的步調增加。
4.對Hashtable:線程同步,不允許用空值作爲鍵或是值,包含contains方法
5.對HashMap:線程非同步,允許用空值作爲鍵或是值,包含containsvalue和containskey方法。
List是接口ArrayList,Vector,LinkedList都實現了此接口。