package se.emilsjolander.stickylistheaders; import java.util.HashMap; /** * simple two way hashmap * @author lsjwzh */ class DualHashMap<TKey, TValue> { HashMap<TKey, TValue> mKeyToValue = new HashMap<TKey, TValue>(); HashMap<TValue, TKey> mValueToKey = new HashMap<TValue, TKey>(); public void put(TKey t1, TValue t2){ remove(t1); removeByValue(t2); mKeyToValue.put(t1, t2); mValueToKey.put(t2, t1); } public TKey getKey(TValue value){ return mValueToKey.get(value); } public TValue get(TKey key){ return mKeyToValue.get(key); } public void remove(TKey key){ if(get(key)!=null){ mValueToKey.remove(get(key)); } mKeyToValue.remove(key); } public void removeByValue(TValue value){ if(getKey(value)!=null){ mKeyToValue.remove(getKey(value)); } mValueToKey.remove(value); } }