5
有兩張地圖,我試圖將它們合併成一張地圖(finalResp
)。合併地圖並修改值
Map<String, String[]> map1 = new HashMap<>();
Map<String, String> map2 = new HashMap<>();
HashMap<String, String> finalResp = new HashMap<String, String>();
解決方案 - 前期的Java 8 - 實現象下面這樣:
for (Map.Entry<String, String[]> entry : map1.entrySet()) {
if (map2.containsKey(entry.getKey())) {
String newValue = changetoAnother(map1.get(entry.getKey()), map2.get(entry.getKey()));
finalResp.put(entry.getKey(), newValue);
}
}
使用Java 8,我被困在此:
HashMap<String, String> map3 = new HashMap<>(map2);
map1.forEach((k, v) -> map3.merge(k, v, (i, j) -> mergeValue(i, j)));
如何檢查如果地圖2鍵在地圖1中不存在並修改值?
太好了!謝謝,但是當我在我的代碼中使用時,得到一個編譯器警告:「在封閉範圍內定義的局部變量map2必須是最終的或有效的最終結果」。在我的代碼中,像這樣獲取map2的值,Map map2 = getRespItemMap(response); –
Umar
使用廣義方法後,錯誤消失了。