ConcurrentMap

public interface ConcurrentMap implements Map<K, V>
Known Indirect Subclasses

A Map providing thread safety and atomicity guarantees.

To maintain the specified guarantees, default implementations of methods including putIfAbsent(K, V) inherited from Map must be overridden by implementations of this interface. Similarly, implementations of the collections returned by methods keySet(), values(), and entrySet() must override methods such as removeIf when necessary to preserve atomicity guarantees.

Memory consistency effects: As with other concurrent collections, actions in a thread prior to placing an object into a ConcurrentMap as a key or value happen-before actions subsequent to the access or removal of that object from the ConcurrentMap in another thread.

Public Method Summary

V
compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Attempts to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping).
V
computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null.
V
computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value.
void
forEach(BiConsumer<? super K, ? super V> action)
Performs the given action for each entry in this map until all entries have been processed or the action throws an exception.
V
getOrDefault(Object key, V defaultValue)
Returns the value to which the specified key is mapped, or defaultValue if this map contains no mapping for the key.
V
merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
If the specified key is not already associated with a value or is associated with null, associates it with the given non-null value.
abstract V
putIfAbsent(K key, V value)
If the specified key is not already associated with a value, associates it with the given value.
abstract boolean
remove(Object key, Object value)
Removes the entry for a key only if currently mapped to a given value.
abstract boolean
replace(K key, V oldValue, V newValue)
Replaces the entry for a key only if currently mapped to a given value.
abstract V
replace(K key, V value)
Replaces the entry for a key only if currently mapped to some value.
void
replaceAll(BiFunction<? super K, ? super V, ? extends V> function)
Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception.

Inherited Method Summary