ArrayList 与 Vector:使用哪一个?

Hun*_*Dev 5 java vector arraylist difference

一开始,我承认我是个白痴;但有一件事我似乎无法理解。我似乎无法找到太大的区别ArrayListVector其他比这个:

“…… (这个类大致相当于 Vector,只不过它是不同步的。) ……”

ArrayList的 javaDocs 中。

那么,当我们考虑一般场景(即排除基于线程的编程中的应用程序)时,这种差异真的是我们应用这两个相似类的方式的重要因素吗?还有其他明显的区别吗?如果是这样,请告诉我。如果不是,那么哪一种是最受青睐普遍接受的方法?

u3l*_*u3l 5

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

编辑:

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