Package com.globalmentor.collections
Class DecoratorReadWriteLockMap<K,V>
- java.lang.Object
-
- com.globalmentor.collections.ReadWriteLockDecorator
-
- com.globalmentor.collections.DecoratorReadWriteLockMap<K,V>
-
- Type Parameters:
K
- The type of key used in the map.V
- The type of value stored in the map.
- All Implemented Interfaces:
ReadWriteLockMap<K,V>
,java.util.concurrent.locks.ReadWriteLock
,java.util.Map<K,V>
- Direct Known Subclasses:
DecoratorReadWriteLockCollectionMap
,DecoratorReadWriteLockReverseMap
public class DecoratorReadWriteLockMap<K,V> extends ReadWriteLockDecorator implements ReadWriteLockMap<K,V>
A thread-safe map decorator that allows many readers but only one writer to access a map at a time. For operations that iterate over live map data, a read or write lock should be acquired before the call to acquire the data and held until the data is consumed.- Author:
- Garret Wilson
-
-
Constructor Summary
Constructors Constructor Description DecoratorReadWriteLockMap(java.util.Map<K,V> map)
Map constructor with a default reentrant read/write lock.DecoratorReadWriteLockMap(java.util.Map<K,V> map, java.util.concurrent.locks.ReadWriteLock lock)
Map and read/write lock constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
V
compute(K key, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
V
computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
V
computeIfPresent(K key, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
boolean
containsKey(java.lang.Object key)
boolean
containsValue(java.lang.Object value)
java.util.Set<java.util.Map.Entry<K,V>>
entrySet()
boolean
equals(java.lang.Object o)
void
forEach(java.util.function.BiConsumer<? super K,? super V> action)
V
get(java.lang.Object key)
V
getOrDefault(java.lang.Object key, V defaultValue)
int
hashCode()
boolean
isEmpty()
java.util.Set<K>
keySet()
V
merge(K key, V value, java.util.function.BiFunction<? super V,? super V,? extends V> remappingFunction)
V
put(K key, V value)
void
putAll(java.util.Map<? extends K,? extends V> t)
V
putIfAbsent(K key, V value)
V
remove(java.lang.Object key)
boolean
remove(java.lang.Object key, java.lang.Object value)
V
replace(K key, V value)
boolean
replace(K key, V oldValue, V newValue)
void
replaceAll(java.util.function.BiFunction<? super K,? super V,? extends V> function)
int
size()
java.util.Collection<V>
values()
-
Methods inherited from class com.globalmentor.collections.ReadWriteLockDecorator
readLock, writeLock
-
-
-
-
Constructor Detail
-
DecoratorReadWriteLockMap
public DecoratorReadWriteLockMap(java.util.Map<K,V> map)
Map constructor with a default reentrant read/write lock.- Parameters:
map
- The map this map should decorate.- Throws:
java.lang.NullPointerException
- if the provided map isnull
.
-
DecoratorReadWriteLockMap
public DecoratorReadWriteLockMap(java.util.Map<K,V> map, java.util.concurrent.locks.ReadWriteLock lock)
Map and read/write lock constructor.- Parameters:
map
- The map this map should decorate.lock
- The lock for controlling access to the map.- Throws:
java.lang.NullPointerException
- if the provided map and/or lock isnull
.
-
-
Method Detail
-
containsKey
public boolean containsKey(java.lang.Object key)
-
containsValue
public boolean containsValue(java.lang.Object value)
-
values
public java.util.Collection<V> values()
-
equals
public boolean equals(java.lang.Object o)
-
hashCode
public int hashCode()
-
replaceAll
public void replaceAll(java.util.function.BiFunction<? super K,? super V,? extends V> function)
-
remove
public boolean remove(java.lang.Object key, java.lang.Object value)
-
computeIfAbsent
public V computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
-
computeIfPresent
public V computeIfPresent(K key, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
-
compute
public V compute(K key, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
-
-