Java ArrayLists顺序以及ArrayLists与Vectors的相对优点

Ell*_*ott 1 java vector arraylist

如果将元素逐个添加到数组列表中,例如:

 ArrayList alist = new ArrayList();
 alist.add("A");
 alist.add("B");
 alist.add("C");
 alist.add("D");
Run Code Online (Sandbox Code Playgroud)

然后通过说alist.get(2)检索第三个元素,我保证检索我添加的第三个元素吗?

问题的第二部分,假设第一个问题的答案是肯定的:我什么时候使用ArrayList而不是Vector,反之亦然.

duf*_*ymo 6

"保证"?由于对问题第二部分的回答,这很难回答.

默认情况下,ArrayList不同步; 矢量是.

因此,如果您正在运行多线程应用程序,您的ArrayList是共享的,可写状态,并且您没有正确同步,您可能会发现保证不那么牢固.

如果您在单个线程中运行,则您编写的代码将返回"C".

您仍然应该更喜欢ArrayList,因为同步很昂贵,您可能并不总是想付出代价.