如何在Java中使用数组初始化向量?

4

我需要一个一步到位的方法吗?我尝试了以下代码:

String[] array;
array=...
Vector<String> vector = new Vector<String>(array);

但我的Eclipse把这个标记为错误。

3
FYI,现今多数情况下不鼓励使用“Vector”。你可能更倾向于选择“ArrayList”。 - Oliver Charlesworth
请参见以下链接:https://dev59.com/iHNA5IYBdhLWcg3wC5JR - sikander
定义“不起作用”。 - Perception
额,这里的“不工作”意味着我的Eclipse将我的代码标记为错误。 - Elderry
3个回答

19

Vector没有直接接受数组的构造方法。

假设arrayString[]类型,你可以这样做:

Vector<String> vector = new Vector<String>(Arrays.asList(array));

最好使用ArrayList,因为它没有同步方法的开销。你可以使用

List<String> list = new ArrayList<>(Arrays.asList(array));

这也会产生一个可变的集合。


只要 array 是一个 String - Buhake Sindi
1
或者更好的方式是 List<String> list = new Vector<String>(Arrays.asList(array));,甚至更好的方式是 List<String> list = new ArrayList<String>(Arrays.asList(array)); - Steve Kuo

4

这样做是行不通的,因为正如文档所示,没有以数组为参数的Vector构造函数。

如果你只想要一个不可修改的列表,请使用

List<String> list = Arrays.asList(array);

如果你真的想要使用Vector(但是应该使用ArrayList,因为Vector已经过时),请使用

Vector<String> vector = new Vector<String>(Arrays.asList(array));

0

我不完全确定你所说的“一个接一个”的意思。如果您想将现有集合添加到向量中,可以使用this

如果您想逐个添加,需要遍历项目,并调用Vector的'add'方法。

for(String item: array) {
    vector.add(item);
}

我试图避免一个一个地做,不管怎样还是谢谢 :) - Elderry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接