ArrayList vs Vector in Java - TongtongLan/Java GitHub Wiki

Common property of Vector and ArrayList in Java

1)打扰向量和ArrayList派生自AbstractList并实现List接口,这意味着它们都是有序集合并允许重复。

2)Vector与ArrayList之间的另一个相似之处在于它们都是基于索引的Collection,您可以使用get(index)方法从Vector和ArrayList中检索对象。

Vector vs ArrayList in Java

1)Vector和ArrayList之间的第一个和最常见的区别是Vector是同步的并且是线程安全的,而ArrayList既不是Synchronized也不是线程安全的。这是什么意思?这意味着如果多线程尝试访问Vector,他们可以做到这一点,而不会影响Vector的内部状态。在ArrayList中,与add(),remove()或get()不同步的方法不同。

2)向量与ArrayList的第二个主要区别是速度,它与以前的差异直接相关。由于Vector是同步的,因此它的速度较慢,ArrayList的速度不如Vector快。

3)Vector与ArrayList的第三个区别是Vector是一个遗留类,最初它不是Java Collection Framework的一部分。从Java 1.4向量被改装来实现List接口并成为Collection Framework的一部分。

conclusion

在单线程环境中使用ArrayList,并且在需要线程安全集合的情况下使用Vector。在线程安全不是问题的情况下,ArrayList比Vector更快。