我正在设置一个数组等于另一个数组。

所以让我们说数组 B = 数组 C。

然后,如果我对数组 B 进行操作,改变它的值,C 也会改变吗?

我想说绝对不是,但我脑子里放了个屁,我觉得我的代码现在正在发生的事情。

最佳答案

是的,它们被改变了。

数组是一个对象,因此在赋值“数组 B = 数组 C”之后只分配引用。两个变量将持有相同的引用。因此,您将拥有一个对象和两个引用

更新

对于“真实副本”,您需要使用 System.arraycopy()Arrays.copyOf()

int[] arrayC = {1,2,3,4,5,6,7,8,9,10};
int[] arrayB = new int[arrayC.length];
System.arraycopy(arrayC, 0, arrayB, 0, arrayC.length );

关于java - 更改已设置为相等的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32748874/

10-12 00:33