gpt4 book ai didi

java - 为什么 clone() 方法不能正常工作?

转载 作者:行者123 更新时间:2023-11-29 09:38:02 25 4
gpt4 key购买 nike

我有一个名为“link_occur_nodup”的二维 vector ,其中包含数据 [[5, 2, 1, 1], [2, 1, 1]]。现在,如果我尝试做

Vector<Vector<Integer>> temp=(Vector<Vector<Integer>>) link_occur_nodup.clone();
temp.elementAt(0).set(1, 50);
System.out.println(temp+" "+link_occur_nodup);

输出是:[[5, 50, 1, 1], [2, 1, 1]] [[5, 50, 1, 1], [2, 1, 1]]我想知道为什么两个 vector 中的值都被改变了?相反,它必须仅位于“temp” vector 中。有人可以解释一下吗?

最佳答案

clone 仅进行浅拷贝:因此您将获得一个新的 Vector,其中引用了与原始对象相同的对象。这是预期的行为。

如果您想要不同的行为,您需要自己手动复制内部 Vector。 (这是不建议使用 clone 的众多原因之一。)

关于java - 为什么 clone() 方法不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246791/

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