繁体   English   中英

如何将整数数组转换为向量?

[英]how do i turn a array of integers into a vector?

我试图将输入整数的数组转换为向量,然后输出结果。 我已经搜索过谷歌,每个示例都使用“(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));

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

您可以将int替换为Integer也可以将值从int[]复制到新的Integer[] (带有另一个循环),然后将其输入向量中。

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

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

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

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

问题是您有一个原始类型(int)的数组,该数组不能与Arrays.asList()一起Arrays.asList()工作。 Arrays.asList(vecArray)实际上返回具有一个元素(您的数组)的List<int[]>

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

Vector<Integer> arrayToVec = new Vector<Integer>();
for (int i : vecArray) {
    arrayToVec.add(i);
}

您的vecArray应该是Integer类型,而不是原始int类型。

Integer [] vecArray = new Integer[vecSize];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM