22

我的代码如下所示:

Vector<String> My_Vector=new Vector<String>();
String My_Array[]=new String[100];

for (int i=0;i<100;i++) My_Array[i]="Item_"+i;
......
My_Vector.addAll(My_Array);

但是我收到一条错误消息,不循环添加每个项目的正确方法是什么?

坦率

4

3 回答 3

61
Collections.addAll(myVector, myArray);

这是将数组的内容添加到集合(例如向量)中的首选方式。

https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#addAll-java.util.Collection-T...-

将所有指定元素添加到指定集合。要添加的元素可以单独指定,也可以作为数组指定。此便捷方法的行为与 c.addAll(Arrays.asList(elements)) 的行为相同,但此方法在大多数实现下可能运行得更快。

于 2010-03-05T00:03:25.850 回答
20

vector.addAll() 接受一个 Collection in 参数。为了将数组转换为 Collection,您可以使用 Arrays.asList():

My_Vector.addAll(Arrays.asList(My_Array));
于 2010-03-05T00:04:07.580 回答
6
My_Vector.addAll(Arrays.asList(My_Array));

如果您注意到,请Collection.addAll争论Collection。Java 数组不是Collection,而是Arrays.asList结合Collection.toArray,是“基于数组和基于集合的 API 之间的桥梁”。

或者,为了将数组中的元素添加到 a 的特定目的Collection,您还可以使用类中的静态辅助addAll方法Collections

Collections.addAll(My_Vector, My_Array);
于 2010-03-04T23:59:24.270 回答