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>
forwardMap
protected java.util.Map<V,K>
reverseMap
-
Constructor Summary
Constructors Modifier Constructor Description ConcurrentBiMap()
protected
ConcurrentBiMap(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 void
clear()
boolean
containsKey(java.lang.Object key)
boolean
containsValue(java.lang.Object value)
java.util.Set<java.util.Map.Entry<K,V>>
entrySet()
V
get(java.lang.Object key)
java.util.Map<V,K>
inverse()
boolean
isEmpty()
java.util.Set<K>
keySet()
V
put(K key, V value)
void
putAll(java.util.Map<? extends K,? extends V> m)
V
remove(java.lang.Object key)
int
size()
java.util.Collection<V>
values()
-