Просто добавьте условие if
, чтобы проверить, присутствует ли ключ на второй карте.
mapA.forEach((key, value) -> {
if (mapB.containsKey(key)) {
mapC.put(mapB.get(key), value));
}
});
Но что, если значения разные? С тем, что вы сказали, кажется, они будут равны
Вот еще один способ сделать это (при условии, что это Map<String, String
для демонстрации)
Set<Map.Entry<String, String>> entrySetMapA = new HashSet<>(mapA.entrySet());
entrySetMapA.retainAll(mapB.entrySet());
entrySetMapA.forEach(entry -> mapC.put(entry.getKey(), entry.getValue()));