1. 问答
  2. 问答详情

Java中Vector和ArrayList的区别

1个回答

0

采纳

ArrayList是在JDK1.2的时候才作为Collection framework的一部分引入的. 它们都是在内部用一个Obejct[]来存储元素的

1. 线程安全
Vector是同步的, 而ArrayList不是.
因为Vector是同步的, 所以它是线程安全的.
同样, 因为Vecotr是同步的, 所以他需要额外的开销来维持同步锁
ArrayList用Collection.synchronizedList(List)来得到一个线程安全的List

2. 容量增长
Vector允许用户设置capacityIncrement这样在每次需要扩充数组的size的时候, Vector会尝试按照预先设置的capacityIncrement作为增量来设置, 而ArrayList则会把数组的大小扩大一倍

如果capacityIncrement设为0或者负值, Vector就会做和ArrayList一样, 每次都将数组大小扩大一倍

3. 性能比较
由于Vector是同步的, 而ArrayList不是, 所以Vector的性能要比ArrayList要稍低一点

在一般情况下, 用ArrayList的, 如果你有同步控制的需要, 那就用Vector

撰写答案

验证码
点击刷新