我知道Java中的向量已经过时,我一直在收到警告,但是我们应该使用向量,所以我是。
这就是我想要做的工作:
构造函数,取维度n并将所有元素设置为0:NVector(int n)
但是我收到一条错误,说“需要数组,但找到了Vector”。任何人都可以帮我解决这个问题吗?
public class NVector
{
Vector<Double> v;
NVector(int n)
{
v = new Vector(n);
for(int i = 0; i<=n; i++)
{
v[i] = 0; //Error in this line
}
}
}
答案 0 :(得分:3)
在Java中,[]
只适用于数组。您必须致电v.add(0)
以在Vector上完成相同的操作。
在此处查看有关矢量的更多功能:http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html
答案 1 :(得分:0)
v[i] = 0; //Error in this line
应该是
v.add(0);
( not v.set(i, 0);
,因为向量开始为空。你在构造函数中传递的大小只是效率提示。)
向量是不是数组,即使它们可以做类似的事情。
另外,使用Vector
是过时的建议。您应该使用ArrayList
,除非您特别需要其他内容。
此外,如果你事先知道尺寸,阵列也不错。特别是基本类型(double,int,float等)的数组将比ArrayLists更有效。如果您事先不知道大小,则ArrayLists(和Vectors)更容易使用。还有其他原因可能会在阵列上使用ArrayList - 例如,Collections类中的方法不适用于数组。