我正在尝试将一个输入的整数数组转换为一个向量,然后输出结果。我搜索过google并且每个例子都使用了“(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));
答案 0 :(得分:3)
问题是,您的数组不是Integer[]
而是int[]
,而java无法在这两种类型之间进行转换。
您可以将int
替换为Integer
,或将int[]
中的值复制到新的Integer[]
(使用其他循环)并将其输入到向量中。
在您的代码中,最后一个语句尝试将所有int[]
个对象复制到向量中,但您希望它会自动收件箱并从数组中复制值。但事实并非如此。
BTW,错误消息给出了提示:
构造函数
Vector<Integer>(List<int[]>)
未定义
您希望使用构造函数Vector<Integer>(List<Integer>)
,而Java决定从错误消息中查找该构造函数。
答案 1 :(得分:1)
问题是你有一个基本类型(int)数组,它与Arrays.asList()
不兼容。 Arrays.asList(vecArray)
实际上返回带有一个元素(您的数组)的List<int[]>
。
最简单的解决方法是手动填充矢量:
Vector<Integer> arrayToVec = new Vector<Integer>();
for (int i : vecArray) {
arrayToVec.add(i);
}
答案 2 :(得分:0)
您的vecArray
应该是Integer
类型,而不是原始int
。
Integer [] vecArray = new Integer[vecSize];