Package org.apache.cassandra.utils
Class ConcurrentBiMap<K,V>
- java.lang.Object
-
- org.apache.cassandra.utils.ConcurrentBiMap<K,V>
-
- Type Parameters:
K-V-
- All Implemented Interfaces:
java.util.Map<K,V>
public class ConcurrentBiMap<K,V> extends java.lang.Object implements java.util.Map<K,V>A variant of BiMap that permits concurrent access, and expects uniqueness of values in both domain and range. We synchronize on _modifications only_, and use ConcurrentHashMap so that readers can lookup safely. This does mean there could be races to lookup the inverse, but we aren't too worried about that.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<K,V>forwardMapprotected java.util.Map<V,K>reverseMap
-
Constructor Summary
Constructors Modifier Constructor Description ConcurrentBiMap()protectedConcurrentBiMap(java.util.Map<K,V> forwardMap, java.util.Map<V,K> reverseMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()booleancontainsKey(java.lang.Object key)booleancontainsValue(java.lang.Object value)java.util.Set<java.util.Map.Entry<K,V>>entrySet()Vget(java.lang.Object key)java.util.Map<V,K>inverse()booleanisEmpty()java.util.Set<K>keySet()Vput(K key, V value)voidputAll(java.util.Map<? extends K,? extends V> m)Vremove(java.lang.Object key)intsize()java.util.Collection<V>values()
-