簡體   English   中英

創建HashMaps的ArrayList的副本

[英]Creating a copy of an ArrayList of HashMaps

我有一些代碼可以創建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));
}

那是因為您要添加到新數組列表中的所有映射仍然是引用。 您還需要復制單個地圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM