对于java.util包中几个集合的一些区别,方便大家的使用:
1.对ArrayList:它是以数组的方式存储,所以允许按序号索引元素,但是插入元素要涉及元素的移动,所以索引数据快但是插入数据慢,而且没有实现线程同步,所以安全性较低,还有就是容量的增加是以一半的步调增加。
2.对Vector: 它是以数组的方式存储,所以允许按序号索引元素,但是插入元素要涉及元素的移动,所以索引数据快但是插入数据慢,而且实现线程同步,所以性能相对较低,还有就是容量的增加是以一倍的步调增加。
3.对LinkedList:它是以链表的方式存储,所以按序号索引元素要前后遍历速度较慢,但是插入元素快,而且没有实现线程同步,所以安全性较低,还有就是容量的增加是以一半的步调增加。
4.对Hashtable:线程同步,不允许用空值作为键或是值,包含contains方法
5.对HashMap:线程非同步,允许用空值作为键或是值,包含containsvalue和containskey方法。
List是接口ArrayList,Vector,LinkedList都实现了此接口。