package org.droidplanner.android.utils.collection;
import java.util.HashMap;
import java.util.Set;
/**
* Created by fhuya on 9/15/14.
*/
public class HashBiMap<K, V> {
private final HashMap<K, V> mKeyToValueMap = new HashMap<K, V>();
private final HashMap<V, K> mValueToKeyMap = new HashMap<V, K>();
public void put(K key, V value) {
mKeyToValueMap.put(key, value);
mValueToKeyMap.put(value, key);
}
public void removeKey(K key) {
final V value = mKeyToValueMap.get(key);
if (value != null) {
mKeyToValueMap.remove(key);
mValueToKeyMap.remove(value);
}
}
public void removeValue(V value) {
final K key = mValueToKeyMap.get(value);
if (key != null) {
mValueToKeyMap.remove(value);
mKeyToValueMap.remove(key);
}
}
public V getValue(K key) {
return mKeyToValueMap.get(key);
}
public K getKey(V value) {
return mValueToKeyMap.get(value);
}
public void clear() {
mKeyToValueMap.clear();
mValueToKeyMap.clear();
}
public Set<K> keySet() {
return mKeyToValueMap.keySet();
}
public Set<V> valueSet() {
return mValueToKeyMap.keySet();
}
}