Java - 复制数组列表对象

标签 java collections arraylist

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

newArrList.addAll(oldArrList);

newArrList = new ArrayList(oldArrList);

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

谁能告诉我如何避免这种情况。

谢谢。

最佳答案

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

我怀疑当您说您对其中一个列表进行更改时,实际上是指您正在对列表引用 的对象之一进行更改。这是意料之中的事。

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

关于Java - 复制数组列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1531419/

相关文章:

java - 但常量放在一个文件中并在所有 Activity 中调用它们

java - 如何对 3 个并行数组进行排序?

java - Android 检查 arraylist 中的字符串是否相等

javascript - 使用 javascript 将 List 从 JSON 元素转换为 ArrayList

java - 如何确定哪些方法在处理网页请求时正在消耗时间?

java - Proguard 将变量转为私有(private)?

java - JScrollPane 隐藏文本区域

java - 如何按日期对对象列表进行分组?

java - 检查 EmptyOrNull 以获取未知数量的集合和 map

c# - ArrayList 有什么不好?