Re: How associate two HashMaps
On 08/05/2012 12:24 AM, Stefan Ram wrote:
Ricardo Nuno<9724@bigfoot.com> writes:
What do I need to associate a value, from one hashMap to a key from a
new HashMap
It is hard to parse this sentence with the comma.
?To associate a value to a key? is a little bit vague.
My guess is that he wants a bidirectional map. For that you'd need a
custom class delegating to two internal HashMap instances. Something like
public class BidiMap<K,V> extends AbstractMap<K,V> {
private Map<K,V> map1, map2;
private BidiMap<V,K> reversed;
public BidiMap () {
map1 = new HashMap<K,V>();
map2 = new HashMap<K,V>();
reversed = new BidiMap<K,V>(map2, map1, this);
}
private BidiMap (Map<K,V> map1, Map<K,V> map2, BidiMap<V,K> reversed) {
this.map1 = map1; this.map2 = map2; this.reversed = reversed;
}
private BidiMap<V,K> getReversedMap () {
return reversed;
}
/* Map methods go here. View methods delegate to map1. Modifying
methods operate on both maps, but reverse key and value when
modifying map2. Also, if a value is already in map2, looks
it up in map2 to find the corresponding key and removes
that key from map1 before adding the new mappings to both maps.
*/
}
Changes to the reversed map will be reflected in the original and vice
versa.
--
public final class JSnarker
extends JComponent
A JSnarker is an NNTP-aware component that asynchronously provides
snarky output when the Ego.needsPuncturing() event is fired in cljp.