我将一些数据存储为 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/