package pl.shockah; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class BiHashMap<K,V> extends HashMap<K,V> { private static final long serialVersionUID = 223379645643426032L; protected HashMap<V,K> second = new HashMap<V,K>(); public void clear() { second.clear(); super.clear(); } public Object clone() { BiHashMap<K,V> ret = new BiHashMap<K,V>(); ret.putAll(this); return ret; } public boolean containsValue(Object value) { return second.containsKey(value); } public Set<Map.Entry<V,K>> entrySetValue() { return second.entrySet(); } public K getKey(Object value) { return second.get(value); } public Set<V> valueSet() { return second.keySet(); } public V put(K key, V value) { second.put(value,key); return super.put(key,value); } public K removeKey(Object value) { return second.remove(value); } public Collection<K> keys() { return second.values(); } }