[英]Copying double ArrayList containing objects in Java (ArrayList<ArrayList<Object>>>)
[英]Java - copying arraylist objects
我試圖將arraylist的內容復制到另一個對象。 我嘗試通過以下方式初始化新的ArrayList對象
newArrList.addAll(oldArrList);
和
newArrList = new ArrayList(oldArrList);
但每次我對其中一個數組列表進行更改時,該值也會在另一個ArrayList中更改。
有人可以告訴我如何避免這種情況。
謝謝。
ArrayList
只包含對象的引用 - 而不是對象本身。 將一個列表的內容復制到另一個列表時,您將復制這些引用。 這意味着兩個列表將引用相同的對象。
我懷疑當你說你對其中一個列表進行更改時,你實際上意味着你正在改變列表引用的一個對象。 這是可以預料的。
如果希望列表具有對獨立對象的引用,則在將對象從一個列表復制到另一個列表時,需要對這些對象進行深層復制 。 具體如何工作將取決於您正在復制的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.