import java.util.HashMap;
import java.util.Map;
class Ideone {
public static <K, V> Map<K, V> mapDifference(Map<? extends K, ? extends V> left, Map<? extends K, ? extends V> right) {
Map<K, V> difference = new HashMap<>();
difference.putAll(left);
difference.putAll(right);
difference.entrySet().removeAll(right.entrySet());
return difference;
}
public static void main
(String[] args
) { Map
<String, String
> map1
= new HashMap
<>(); Map
<String, String
> map2
= new HashMap
<>();
map1.put("a", "1");
map1.put("b", "2");
map1.put("key3", "44");
map2.put("b", "2");
map2.put("d", "4");
map2.put("third key", "44");
System.
out.
println(mapDifference
(map2, map1
)); }
}
aW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcDsKIApjbGFzcyBJZGVvbmUgewogICAgcHVibGljIHN0YXRpYyA8SywgVj4gTWFwPEssIFY+IG1hcERpZmZlcmVuY2UoTWFwPD8gZXh0ZW5kcyBLLCA/IGV4dGVuZHMgVj4gbGVmdCwgTWFwPD8gZXh0ZW5kcyBLLCA/IGV4dGVuZHMgVj4gcmlnaHQpIHsKICAgICAgICBNYXA8SywgVj4gZGlmZmVyZW5jZSA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBkaWZmZXJlbmNlLnB1dEFsbChsZWZ0KTsKICAgICAgICBkaWZmZXJlbmNlLnB1dEFsbChyaWdodCk7CiAgICAgICAgZGlmZmVyZW5jZS5lbnRyeVNldCgpLnJlbW92ZUFsbChyaWdodC5lbnRyeVNldCgpKTsKICAgICAgICByZXR1cm4gZGlmZmVyZW5jZTsKICAgIH0KIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwMSA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDIgPSBuZXcgSGFzaE1hcDw+KCk7CiAKICAgICAgICBtYXAxLnB1dCgiYSIsICIxIik7CiAgICAgICAgbWFwMS5wdXQoImIiLCAiMiIpOwogICAgICAgIG1hcDEucHV0KCJrZXkzIiwgIjQ0Iik7CiAKICAgICAgICBtYXAyLnB1dCgiYiIsICIyIik7CiAgICAgICAgbWFwMi5wdXQoImQiLCAiNCIpOwogICAgICAgIG1hcDIucHV0KCJ0aGlyZCBrZXkiLCAiNDQiKTsKIAogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXBEaWZmZXJlbmNlKG1hcDIsIG1hcDEpKTsKICAgIH0KfQ==