Esistono due mappe e sto cercando di unirle in una singola mappa (finalResp
).Unione di mappa e valore di modifica
Map<String, String[]> map1 = new HashMap<>();
Map<String, String> map2 = new HashMap<>();
HashMap<String, String> finalResp = new HashMap<String, String>();
Solution - pre Java 8 - raggiunto come di seguito:
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);
}
}
Utilizzo di Java 8, mi sono bloccato in questo:
HashMap<String, String> map3 = new HashMap<>(map2);
map1.forEach((k, v) -> map3.merge(k, v, (i, j) -> mergeValue(i, j)));
Come posso verificare se una chiave mappa 2 non è presente nella mappa 1 e modifica i valori?
Grande! Grazie, comunque quando uso il mio codice, sto, ricevendo un avviso del compilatore "La variabile locale map2 definita in un ambito che la racchiude deve essere definitiva o effettivamente definitiva". Nel mio codice sto ottenendo il valore di map2 in questo modo, Map map2 = getRespItemMap (response); –
Umar
Dopo aver utilizzato l'approccio generalizzato, l'errore è scomparso.