java - 如何在 Java 中备份 ArrayList?

标签 java arraylist

我将一些数据存储为 ArrayList。当我想备份这些数据时,java 永远绑定(bind)两个对象。这意味着当我更改数据 ArrayList 中的值时,此更改会备份。我尝试将值从数据中单独复制到循环中的备份,尝试使用方法 data.clone() - 没有任何帮助。

最佳答案

你的问题不是很清楚。如果你 clone() 一个 ArrayList,如果你改变原始的内容(即,如果你添加或删除元素),克隆将不会被修改,但它是一个“浅拷贝”,所以如果你改变原始中的实际对象,它们将也可以在克隆中更改。

如果你想做一个“深拷贝”,这样对实际对象的更改就不会影响它们在克隆中的备份,那么你需要创建一个新的 ArrayList 然后遍历原始的 ArrayList 并为每个元素,将其克隆到新元素中。如

ArrayList backup = new ArrayList();
for (Object obj : data)
   backup.add(obj.clone());

关于java - 如何在 Java 中备份 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/303098/

相关文章:

java - 如何将Array嵌套在ArrayList中(ArrayList of ArrayList)?

java - 构造函数未定义

java - SLF4J - 绑定(bind)被同一应用程序服务器上的其他应用程序覆盖

JavaFX LineChart - 从图表中清除数据

java - 未根据 Eclipse RCP 启动时的首选项设置代理

java - 使用适配器应对两种不同情况

java - 将列表 A 中的元素添加到列表 B 的元素中,其中特殊成员相等

java - 绘制罗塞塔形状

android - 在android中的SQLite数据库中插入数组

java - 如何在 Java List 中获取对象的索引