1

Vector 有两种方法来获取一个索引处的元素。

Vector<Integer> matrix;
matrix = new Vector<Integer>;
matrix.get(0);
matrix.elementAt(0);

似乎他们在这里做同样的事情。

4

3 回答 3

8

他们都做同样的工作。您可以访问 的JavadocVector#elementAt(int),它清楚地说明了这一点:

此方法在功能上与 get(int) 方法(它是 List 接口的一部分)相同。

好吧,你不应该Vector再在新代码中使用了。这是遗留类,很久以前就被ArrayList. 此外,其中定义的每个操作Vector都是同步的,这在大多数情况下是不需要的。并且无论何时需要,都应该使用Collections.synchronizedList, 代替。

而且您不能像在代码中那样创建参数化类型的数组。所以,你的代码甚至不会编译。

new Vector<Integer>[100];  // This will not compile. Error: Generic Array Creation
于 2013-08-15T08:21:21.833 回答
7

不同之处在于,像 Hashtable 和 Stack 这样的 Vector 是遗留类,它们在 1998 年在 Java 1.2 中重新设计,被 ArrayList 取代。

elementAt(int) 是遗留方法

get(int) 符合 15 年前添加的 List 接口。

简而言之,除非你真的必须,否则不要使用 Vector。

于 2013-08-15T08:21:17.680 回答
0

根据文档

从 Java 2 平台 v1.2 开始,该类被改进为实现 List 接口,使其成为 Java Collections Framework 的成员。与新的集合实现不同,Vector 是同步的。如果不需要线程安全实现,建议使用 ArrayList 代替 Vector。

以这种方式get() method添加

于 2013-08-15T08:24:56.973 回答