错误:需要数组,但找到了Vector <double>?</double>

时间:2014-02-23 00:45:01

标签: java arrays vector constructor

我知道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 

    }
}
}

2 个答案:

答案 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类中的方法不适用于数组。