Arraylist和Vector区别

来源:互联网 发布:打击垫编程教学 编辑:程序博客网 时间:2024/06/05 03:38

List接口下一共实现了三个类:ArrayList,Vector,LinkedList。 

Arraylist和LinkedList区别上文有提到,这里就不多说了。它们的区别一般主要用在遍历数据的插入顺序的时候。

ArrayList和Vector都是用数组实现的。


Arraylist和Vector区别:

1、Vector多线程是安全的,而ArrayList不是。Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;


2、两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的。

(很多网友说Vector增加原来空间的一倍,ArrayList增加原来空间的50%,其实也差不多是这个意思。)


3、Vector可以设置增长因子,而ArrayList不可以。


4、ArrayList有三个构造方法,Vector有四个构造方法。

5、Vector比Arraylist多一个构造方法,public Vector(int initialCapacity,int capacityIncrement)这个构造方法,capacityIncrement就是容量增长,前面所说的增长因子,ArrayList中是没有的。
6、Vector是同步的,ArrayList非同步,所以效率上ArrayList要比Vector高一些。
没有一个ArrayList的方法具有同步执行的能力;相反,Vector的大多数方法具有同步能力,或直接或间接。
所以,Vector线程安全,ArrayList线程不安全。因此ArrayList要比Vector快速。
应用场景:
在不需要同步时应该使用ArrayList,反之使用Vector。


3 0
原创粉丝点击