Java 构造函数未定义,而构造函数确实已定义

Java 构造函数未定义,而构造函数确实已定义,java,Java,此行导致错误“构造函数向量(double[],double[])未定义”: 有什么想法吗?因为你定义了向量Vector 向量只需要trainingSet类型,而不需要doublepremitive 你可以把它改成 Vector<trainingSet> set = new Vector<trainingSet>().add(new trainingSet({1.0, 1.0},{0.0,0.0}))); 向量集= newvector().add(新的训练集({1.0

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


有什么想法吗?

因为你定义了向量
Vector

向量只需要
trainingSet
类型,而不需要
double
premitive

你可以把它改成

Vector<trainingSet> set = 

new Vector<trainingSet>().add(new trainingSet({1.0, 1.0},{0.0,0.0})));
向量集=
newvector().add(新的训练集({1.0,1.0},{0.0,0.0}));

因为您不是在初始化
培训集,而是在初始化
向量
类本身
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));
Vector向量=新向量();
double[]result={1.0,1.0};
双[]模式={0.0,0.0};
添加(新训练集(结果、模式));

也可以考虑使用,而不是<代码>向量 >,除非你不需要同步。code>Vector

是一个比
列表
慢得多的集合,Java的
Vector
没有任何构造函数使用集合类型的单个元素。此外,您还试图通过传递两个带有双精度的
数组来构造向量,而不是训练集。可能的解决办法是:

Vector<trainingSet> set = new Vector<trainingSet>();
set.add(new trainingSet(new double[]{1.0, 1.0}, new double{0.0, 0.0}));
向量集=新向量();
add(新的训练集(新的double[]{1.0,1.0},新的double{0.0,0.0}));

您正在将参数传递给vector构造函数,而不是在名为trainingSet的类的cunstructor中
您正在调用不存在的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));
double[]模式={1.0,1.0};
double[]Result={0.0,0.0};
向量集=新向量();
添加(新训练集(模式、结果));

FWIW,Java代码中压倒性的惯例是在类和接口名称上使用首字母大写(因此,
TrainingSet
,而不是
TrainingSet
)。如果你愿意,你可以无视这个惯例,但这会导致人们在阅读你的代码时遇到困难。Vector有这样的构造函数吗?我在文档中没有找到它;仍然会导致错误:“构造函数HelloWorld.trainingSet(double,double,double)未定义”。这真是太疯狂了,因为显然只有2个double[]s。我看到它在以前的答案中已经解决了,我也会更新我的。它不起作用,不知何故,我无法直接向构造函数获取任何double[]。这就是:trainingsets2=newtrainingset(newdouble[]{1.0},newdouble[]{1.1});这不是:trainingSet s2=新的trainingSet({1.0},{1.1})@疯狂是真的。对不起,我没有注意到。我认为你不能像那样构造双数组。
Vector<trainingSet> set = new Vector<trainingSet>();
set.add(new trainingSet(new double[]{1.0, 1.0}, new double{0.0, 0.0}));
    double[] Pattern={1.0, 1.0};
    double[] Result={0.0, 0.0};

    Vector<trainingSet> set = new Vector<trainingSet>();
    set.add(new trainingSet(Pattern, Result));