java - ArrayList 与 vector : Which one to use?

标签 java vector arraylist difference

一开始,我承认我是个白痴;但有一件事我似乎无法理解。我似乎找不到 ArrayListVector 之间的区别,除此之外:

"...(This class is roughly equivalent to Vector, except that it is unsynchronized.)... "

ArrayList 的 javaDocs 中.

那么,当我们考虑一般情况时(即排除在 基于线程的编程)?还有其他明显的区别吗?如果是这样,请告诉我。如果不是,那么哪种方法是最受青睐普遍接受的方法?

最佳答案

除了与同步的差异之外,插入新元素时在内部也存在差异。对于这两个类,其中的数组必须增加大小以防止它用完空间。默认情况下, vector 将其大小加倍。 ArrayList 将其大小增加了当前大小的一半。

编辑:

此外,一些答案提到 Vectors 是线程安全的。这在某种程度上是正确的,但它们被某种程度上被弃用的全部原因(我认为)是因为它们对大多数同步需求不是很有用,这是因为它在每个操作上同步(不安全)。您通常要做的是对一系列操作进行同步。 Vector 不会那样做(虽然 ArrayLists 也不会)所以即使在需要同步的情况下(基本上它是你无法控制的)也不是真正的方法。

关于java - ArrayList 与 vector : Which one to use?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22069923/

相关文章:

java - 在java类中获取后退点击的句柄

java - 将链表的头部移动到尾部

c++ - 多态继承不覆盖基类方法

vector - Fortran 数组在添加值时自动增长

java - Android,从两个数组列表创建一个数组列表

Java 2D 数组列表

Java实现遍历 Twig 生成位码的递归方法(哈夫曼编码)

java - Solaris:与 ZFS 一起使用的虚拟片/磁盘

C++: 'set' 和 'vector'“尽管有#include 语句但未声明

python - 创建一个打印雪花的二维数组 PYTHON