更改已设置为

时间:2015-09-23 20:28:29

标签: java arrays object set equals

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

所以假设数组B =数组C。

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

我想绝对不要说,但我有一个大脑放屁,我觉得我的代码现在发生了什么。

2 个答案:

答案 0 :(得分:2)

当你将一个数组分配给另一个数组时,数组将保存引用,所以如果你改变一个数组中的值,它肯定会改变另一个数组的值。

就像你的示例数组B = array C. B将保存对数组C的引用。因此数组B中的任何更改都将反映在数组C中。

答案 1 :(得分:0)

是的,他们被改变了。

数组是一个对象,所以在赋值后只分配引用"数组B =数组C。"两个变量都将保持相同的参考。因此,您将拥有一个对象和两个引用

<强>更新

对于&#34;真实副本&#34;您需要使用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 );