is new.
Subinterfaces:
ConcurrentNavigableMap
<K,V>
All Known Implementing Classes:
ConcurrentHashMap
,
ConcurrentSkipListMap
public interface ConcurrentMap<K,V>
A Map providing additional atomic putIfAbsent , remove , and replace methods.
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.
This interface is a member of the Java Collections Framework .
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface java.util. Map |
|---|
| Map.Entry < K , V > |
| Method Summary | |
|---|---|
| V |
putIfAbsent
(
K
key,
V
value) If the specified key is not already associated with a value, associate it with the given value. |
| boolean |
remove
(
Object
key,
Object
Removes the
a
key only if currently mapped to
a
given value. |
| V |
replace
(
K
key,
V
Replaces the
a
key only if currently mapped to some value. |
| boolean |
replace
(
K
key,
V
oldValue,
V
Replaces the
a
key only if currently mapped to
a
given value. |
| Methods inherited from interface java.util. Map |
|---|
| clear , containsKey , containsValue , entrySet , equals , get , hashCode , isEmpty , keySet , put , putAll , remove , size , values |
| Method Detail |
|---|
V putIfAbsent(K key,
V value)
if (!map.containsKey(key)) return map.put(key, value); else return map.get(key);
except
associated
key
the
previous value associated with
the
specified key, or
null
if there was no mapping for
the
key.
(A
values.)
map
map
NullPointerException
- if the specified key or value is null, and this map does not permit null keys or values
IllegalArgumentException
- if some property of the specified key or value prevents it from being stored in this map
boolean remove(Object key,
Object value)
Removes the
a
key only if currently mapped to
a
given value.
This is equivalent to
ifexcept that the action is performed atomically.(map.containsKey(key) &&
((map.containsKey(key) &&map.get(key).equals(value)) { map.remove(key); return true; } else return false;
associated
expected to be
associated with the specified
key
removed
map
ClassCastException
- if the key or value is of an inappropriate type for this map (optional)
- if the specified key or value is null, and this map does not permit null keys or values (optional)
boolean replace(K key,
V oldValue,
V newValue)
Replaces the
a
key only if currently mapped to
a
given value.
This is equivalent to
ifexcept that the action is performed atomically.(map.containsKey(key) &&
((map.containsKey(key) &&map.get(key).equals(oldValue)) { map.put(key, newValue); return true; } else return false;
associated
key
key
map
ClassCastException
- if the class of a specified key or value prevents it from being stored in this map
- if a specified key or value is null, and this map does not permit null keys or values
IllegalArgumentException
- if some property of a specified key or value prevents it from being stored in this map
V replace(K key,
V value)
Replaces the
a
key only if currently mapped to some value.
This is equivalent to
ifexcept that the action is performed atomically.(map.containsKey(key))
((map.containsKey(key)){ return map.put(key, value); } else return null;
associated
key
the
previous value associated with
the
specified key, or
null
if there was no mapping for
the
key.
(A
values.)
map
ClassCastException
- if the class of the specified key or value prevents it from being stored in this map
- if the specified key or value is null, and this map does not permit null keys or values
IllegalArgumentException
- if some property of the specified key or value prevents it from being stored in this map