簡體   English   中英

更改已設置相等的對象

[英]Altering objects that have been set equal

我正在設置一個等於另一個數組的數組。

所以我們假設數組B =數組C.

然后,如果我對數組B進行操作,更改它的值,C是否也會改變?

我想絕對不要說,但我有一個大腦放屁,我覺得我的代碼現在發生了什么。

當您將一個數組分配給另一個數組時,該數組將保存該引用,因此如果您更改一個數組中的值,那么它肯定會更改其他數組的值。

就像在您的示例數組B = array C中一樣.B將保存對數組C的引用。因此數組B中的任何更改都將反映在數組C中。

是的,他們被改變了。

數組是一個對象,因此在賦值“array B = array C”之后,只分配引用。 兩個變量都將保持相同的參考。 因此,您將擁有一個對象和兩個引用

UPDATE

對於“真實副本”,您需要使用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 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM