【发布时间】:2017-04-11 15:49:02
【问题描述】:
我有一些代码可以创建 HashMaps 的 ArrayList,然后我需要 HashMaps 的 ArrayList 的副本来执行计算,但我希望原件保持不变。
我已经尝试了各种方法,来自人们的 SO 答案,这是我当前的代码:
List<Map> counts = new ArrayList<>();
counts 列表中填充了 HashMap。
我需要一份副本,但我不希望我在副本上执行的计算影响原件。
我试过了:
List<Map> copyCounts = new ArrayList<Map>(counts);
但是每当我执行更改时,它都会改变原始内容
【问题讨论】:
-
永远不要使用克隆。它坏了。
-
不认为你可以克隆地图吗?
-
可以使用java-8流进行计算,不会改变原列表的状态