有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

机器学习为什么改变了java中等式的两面?

我有一个奇怪的问题,把我完全弄糊涂了

我正在为我的项目使用WEKA,我想更改数据集的类值以测试一些东西;因此,我将数据集保存到另一个名为d的值中,并使用setClassValue方法更改类值。最后,我在d和dataset变量中打印每个实例的类值

Instances d=dataset;
for (int i = 0; i <dataset.size(); i++) {
    dataset.get(i).setClassValue(10);
    System.out.println(dataset.get(i).classValue()+ "\t" +d.get(i).classValue() );
}

结果不可信,d和数据集类值都已更改为什么会发生这种情况?考虑到应该保留原始数据集,如何更改数据集的类值


共 (1) 个答案

  1. # 1 楼答案

    d=dataset
    

    现在有两个变量都引用相同的对象

    不像C++,java从不隐式复制任何东西。br/> 如果您想要一个对象的单独副本,您需要自己制作一个

    如果对象实现了Cloneable,那么可以使用clone()实现