los*_*sit 5 java collections arraylist
我试图将arraylist的内容复制到另一个对象.我尝试通过以下方式初始化新的ArrayList对象
newArrList.addAll(oldArrList);
Run Code Online (Sandbox Code Playgroud)
和
newArrList = new ArrayList(oldArrList);
Run Code Online (Sandbox Code Playgroud)
但每次我对其中一个数组列表进行更改时,该值也会在另一个ArrayList中更改.
有人可以告诉我如何避免这种情况.
谢谢.
Jon*_*eet 15
在ArrayList将只包含对象的引用-而不是对象本身.将一个列表的内容复制到另一个列表时,您将复制这些引用.这意味着两个列表将引用相同的对象.
我怀疑当你说你对其中一个列表进行更改时,你实际上意味着你正在改变列表引用的一个对象.这是可以预料的.
如果希望列表具有对独立对象的引用,则在将对象从一个列表复制到另一个列表时,需要对这些对象进行深层复制.具体如何工作将取决于您正在复制的对象.
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |