0

此行导致错误“构造函数 Vector(double[], double[]) 未定义”:

Vector<trainingSet> set = new Vector<trainingSet>({1.0, 1.0}, {0.0, 0.0});

而“trainingSet”类确实有一个对应的构造函数:

public class trainingSet {
    public double [] pattern, result;
    public trainingSet(){}
    public trainingSet(double[] Pattern, double[] Result){
        pattern = Pattern;
        result = Result;
    }
}

任何的想法?

4

5 回答 5

5

因为您不是在初始化trainingSet而是在初始化Vector类本身。Vector只有默认构造函数,具有初始大小的构造函数,您还可以将其他集合传递给它。你应该做类似的事情

Vector<trainingSet> vector = new Vector<trainingSet>();
double[] result = {1.0, 1.0};
double[] pattern = {0.0, 0.0};
vector.add(new trainingSet(result, pattern));

除非您不需要同步,否则还可以考虑使用List而不是。收集速度比 a 慢得多。VectorVectorList

于 2013-02-07T09:04:17.327 回答
2

JavaVector没有采用集合类型的单个元素的构造函数。此外,您还试图通过传递两个Arrays双精度而不是训练集来构造向量。可能的解决方法是:

Vector<trainingSet> set = new Vector<trainingSet>();
set.add(new trainingSet(new double[]{1.0, 1.0}, new double{0.0, 0.0}));
于 2013-02-07T09:05:49.797 回答
1

您正在将参数传递给向量构造函数,而不是在名为trainingSet的类的 cunstructor 中

于 2013-02-07T09:05:51.250 回答
1

您正在调用不存在的 Vector 类的构造函数,试试这个,

    double[] Pattern={1.0, 1.0};
    double[] Result={0.0, 0.0};

    Vector<trainingSet> set = new Vector<trainingSet>();
    set.add(new trainingSet(Pattern, Result));
于 2013-02-07T09:14:53.120 回答
0

因为你的定义Vector<trainingSet>

VectortrainingSet只需要类型而不是double前置

你可以把它改成

Vector<trainingSet> set = 

new Vector<trainingSet>().add(new trainingSet({1.0, 1.0},{0.0,0.0})));
于 2013-02-07T09:03:41.627 回答