Java - 复制arraylist对象

时间:2009-10-07 12:46:14

标签: java collections arraylist

我正在尝试将arraylist的内容复制到另一个对象中。我尝试通过以下方式初始化新的ArrayList对象

newArrList.addAll(oldArrList);

newArrList = new ArrayList(oldArrList);

但每次我对其中一个数组列表进行更改时,该值也会在另一个ArrayList中更改。

有人可以告诉我如何避免这种情况。

感谢。

1 个答案:

答案 0 :(得分:15)

ArrayList只包含对象的引用 - 而不是对象本身。将一个列表的内容复制到另一个列表时,您将复制这些引用。这意味着两个列表将引用相同的对象。

我怀疑当你说你对其中一个列表进行更改时,实际上你意味着你正在改变列表中引用的对象之一。这是可以预期的。

如果您希望列表具有对独立对象的引用,则在将对象从一个列表复制到另一个列表时,您需要对对象进行深层复制。具体如何工作将取决于您正在复制的对象。