class MyMap
extends java.
util.
HashMap{ @Override
public void putAll
(java.
util.
Map mapToAdd
){ java.
util.
Iterator iterKeys
= keySet
().
iterator(); while(iterKeys.hasNext()){
if(mapToAdd.containsKey(currentKey)){
mapToAdd.
put(currentKey,
new Integer(Integer.
parseInt(get
(currentKey
).
toString()) + Integer.
parseInt(mapToAdd.
get(currentKey
).
toString()))); }else{
mapToAdd.put(currentKey, get(currentKey));
}
}
super.putAll(mapToAdd);
}
public static void main
(String args
[]){ MyMap m1 = new MyMap();
MyMap m2 = new MyMap();
m1.putAll(m2);
}
}
Y2xhc3MgTXlNYXAgZXh0ZW5kcyBqYXZhLnV0aWwuSGFzaE1hcHsKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBwdXRBbGwoamF2YS51dGlsLk1hcCBtYXBUb0FkZCl7CiAgICAgICAgICBqYXZhLnV0aWwuSXRlcmF0b3IgaXRlcktleXMgPSBrZXlTZXQoKS5pdGVyYXRvcigpOwogICAgICAgICAgd2hpbGUoaXRlcktleXMuaGFzTmV4dCgpKXsKICAgICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRLZXkgPSAoU3RyaW5nKWl0ZXJLZXlzLm5leHQoKTsKICAgICAgICAgICAgICAgaWYobWFwVG9BZGQuY29udGFpbnNLZXkoY3VycmVudEtleSkpewogICAgICAgICAgICAgICAgICAgIG1hcFRvQWRkLnB1dChjdXJyZW50S2V5LCBuZXcgSW50ZWdlcihJbnRlZ2VyLnBhcnNlSW50KGdldChjdXJyZW50S2V5KS50b1N0cmluZygpKSArIEludGVnZXIucGFyc2VJbnQobWFwVG9BZGQuZ2V0KGN1cnJlbnRLZXkpLnRvU3RyaW5nKCkpKSk7CiAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIG1hcFRvQWRkLnB1dChjdXJyZW50S2V5LCBnZXQoY3VycmVudEtleSkpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBzdXBlci5wdXRBbGwobWFwVG9BZGQpOwogICAgIH0KICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKXsKICAgICAgICAgTXlNYXAgbTEgPSBuZXcgTXlNYXAoKTsKICAgICAgICAgbTEucHV0KCJPbmUiLCBuZXcgSW50ZWdlcigxKSk7CiAgICAgICAgIG0xLnB1dCgiVHdvIiwgbmV3IEludGVnZXIoMikpOwogICAgICAgICBtMS5wdXQoIlRocmVlIiwgbmV3IEludGVnZXIoMykpOwogICAgICAgICBNeU1hcCBtMiA9IG5ldyBNeU1hcCgpOwogICAgICAgICBtMi5wdXQoIk9uZSIsIG5ldyBJbnRlZ2VyKDQpKTsKICAgICAgICAgbTIucHV0KCJUd28iLCBuZXcgSW50ZWdlcig1KSk7CiAgICAgICAgIG0yLnB1dCgiVGhyZWUiLCBuZXcgSW50ZWdlcig2KSk7CiAgICAgICAgIG0xLnB1dEFsbChtMik7CiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtMSk7CiAgICAgfQp9