похоже на willcodejavaforfood Ответы не нужны, но вместо этого используется набор записей для меньшего количества запросов HashMap.
public static <K,V> void appendMapBtoMapA(HashMap<K,List<V>> a, HashMap<K,List<V>> b) {
for (Map.Entry<K, List<V>> bEntry : b.entrySet()) {
if (a.containsKey(bEntry.getKey())) {
a.get(bEntry.getKey()).addAll(bEntry.getValue());
} else {
a.put(bEntry.getKey(), bEntry.getValue());
}
}
}
или Nishant , который отбрасывает содержащий вызов и добавляет нулевую проверку, но с entrySet
public static <K,V> void appendMapBtoMapA(HashMap<K,List<V>> a, HashMap<K,List<V>> b) {
for (Map.Entry<K, List<V>> bEntry : b.entrySet()) {
List<V> aValue = a.get(bEntry.getKey());
if (aValue != null) {
aValue.addAll(bEntry.getValue());
} else {
a.put(bEntry.getKey(), bEntry.getValue());
}
}
}
или с Java 8
public static <K,V> void appendMapBtoMapA(HashMap<K,List<V>> a, HashMap<K,List<V>> b) {
for (Map.Entry<K, List<V>> bEntry : b.entrySet()) {
a.computeIfAbsent(
bEntry.getKey(),
k -> new LinkedList<>()
).addAll(bEntry.getValue());
}
}