0

我正在尝试将输入整数数组转换为向量,然后输出结果。我搜索了谷歌,每个示例都使用“(Arrays.asList(randomArray)”。但是,当我尝试编译时,我得到一个“找不到符号 - 构造函数 Vector(java.util.list)”什么是正确的代码将数组转换为向量?

这是我的代码:

Scanner inputNumber = new Scanner(System.in);
System.out.println("How big would you like the vector to be?");
int vecSize = inputNumber.nextInt();
int [] vecArray = new int[vecSize];
int [] primeArray = new int[vecSize];
System.out.println("Please enter " + vecSize + " postive numbers please: ");

for (int i = 0; i < vecSize; i++)  {
    int arrayInput = inputNumber.nextInt();
    if (arrayInput > 0){
    vecArray[i] = arrayInput;
    }
}
Vector<Integer> arrayToVec = new Vector<Integer>(Arrays.asList(vecArray));
4

3 回答 3

3

问题是,您的数组不是 anInteger[]而是 an int[],并且 java 无法在这两种类型之间进行转换。

您可以替换intbyInteger或将值从 复制int[]到新的Integer[](使用另一个循环)并将其输入向量。

在您的代码中,最后一条语句尝试将所有int[]对象复制到向量中,但您希望它会自动收件箱并从数组中复制值。但事实并非如此。

顺便说一句,错误消息给出了提示:

构造函数Vector<Integer>(List<int[]>)未定义

您希望改用构造函数Vector<Integer>(List<Integer>),而 Java 决定从错误消息中查找构造函数。

于 2013-01-10T06:24:49.520 回答
1

问题是您有一个原始类型 (int) 的数组,它不适用于Arrays.asList(). Arrays.asList(vecArray)实际上返回List<int[]>一个元素(你的数组)。

最简单的解决方法是自己手动填充向量:

Vector<Integer> arrayToVec = new Vector<Integer>();
for (int i : vecArray) {
    arrayToVec.add(i);
}
于 2013-01-10T06:28:42.610 回答
0

vecArray应该是 typeInteger而不是 original int

Integer [] vecArray = new Integer[vecSize];
于 2013-01-10T06:28:47.780 回答