我有一些代码可以创建HashMaps的ArrayList,然后我需要该HashMaps的ArrayList的副本来执行计算,但是我希望原图保持不变。

我从人们的SO答案中尝试了各种方法,这是我当前的代码:

List<Map> counts = new ArrayList<>();


counts列表充满了HashMaps。

我需要一个副本,但是我不希望对副本执行的计算影响原始副本。

我努力了:

List<Map> copyCounts = new ArrayList<Map>(counts);


但是每当我执行更改时,它都会更改原始内容

最佳答案

以下是创建深层副本的方法:

List<Map> counts = ...

List<Map> copy = new ArrayList<>();
for(Map m : counts){
  copy.add(new HashMap(m));
}

10-01 02:03
查看更多