gpt4 book ai didi

java - 为什么java中等式两边都变了?

转载 作者:行者123 更新时间:2023-11-30 04:16:48 27 4
gpt4 key购买 nike

我有一个奇怪的问题,让我完全困惑。

我在我的项目中使用 WEKA,并且我想更改数据集的类值来测试某些内容;因此,我将数据集保留到另一个名为 d 的值中,并使用 setClassValue 方法来更改类值。最后,我打印 d 和数据集变量中每个实例的 classValues。

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 和数据集类值均已更改。为什么会发生这种情况?考虑到我应该保留原始数据集,如何更改数据集的类值?

最佳答案

d=dataset

您现在有两个变量,它们都引用同一个对象。

与 C++ 不同,Java 从不隐式复制任何内容。
如果您想要一个对象的单独副本,您需要自己制作一个。

如果对象实现了Cloneable,您可以使用clone()来实现。

关于java - 为什么java中等式两边都变了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18168542/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com