A
java.util.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.
| since | 1.5 |
| K | the type of keys maintained by this map |
| V | the type of mapped values |
| Methods |
| public Object |
putIfAbsent(Object key, Object value) If the specified key is not already associated
with a value, associate it with the given value.
This is equivalent to
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
except that the action is performed atomically.
| key | key with which the specified value is to be associated |
| value | value to be associated with the specified key |
| return | the previous value associated with the specified key, or
null if there was no mapping for the key.
(A null return can also indicate that the map
previously associated null with the key,
if the implementation supports null values.) |
| Throws | UnsupportedOperationException: if the put operation
is not supported by this map |
| Throws | ClassCastException: if the class of the specified key or value
prevents it from being stored in this map |
| Throws | NullPointerException: if the specified key or value is null,
and this map does not permit null keys or values |
| Throws | IllegalArgumentException: if some property of the specified key
or value prevents it from being stored in this map |
|
| public boolean |
remove(Object key, Object value) Removes the entry for a key only if currently mapped to a given value.
This is equivalent to
if (map.containsKey(key) && map.get(key).equals(value)) {
map.remove(key);
return true;
} else return false;
except that the action is performed atomically.
| key | key with which the specified value is associated |
| value | value expected to be associated with the specified key |
| return | true if the value was removed |
| Throws | UnsupportedOperationException: if the remove operation
is not supported by this map |
| Throws | ClassCastException: if the key or value is of an inappropriate
type for this map (optional) |
| Throws | NullPointerException: if the specified key or value is null,
and this map does not permit null keys or values (optional) |
|
| public boolean |
replace(Object key, Object oldValue, Object newValue) Replaces the entry for a key only if currently mapped to a given value.
This is equivalent to
if (map.containsKey(key) && map.get(key).equals(oldValue)) {
map.put(key, newValue);
return true;
} else return false;
except that the action is performed atomically.
| key | key with which the specified value is associated |
| oldValue | value expected to be associated with the specified key |
| newValue | value to be associated with the specified key |
| return | true if the value was replaced |
| Throws | UnsupportedOperationException: if the put operation
is not supported by this map |
| Throws | ClassCastException: if the class of a specified key or value
prevents it from being stored in this map |
| Throws | NullPointerException: if a specified key or value is null,
and this map does not permit null keys or values |
| Throws | IllegalArgumentException: if some property of a specified key
or value prevents it from being stored in this map |
|
| public Object |
replace(Object key, Object value) Replaces the entry for a key only if currently mapped to some value.
This is equivalent to
if (map.containsKey(key)) {
return map.put(key, value);
} else return null;
except that the action is performed atomically.
| key | key with which the specified value is associated |
| value | value to be associated with the specified key |
| return | the previous value associated with the specified key, or
null if there was no mapping for the key.
(A null return can also indicate that the map
previously associated null with the key,
if the implementation supports null values.) |
| Throws | UnsupportedOperationException: if the put operation
is not supported by this map |
| Throws | ClassCastException: if the class of the specified key or value
prevents it from being stored in this map |
| Throws | NullPointerException: if the specified key or value is null,
and this map does not permit null keys or values |
| Throws | IllegalArgumentException: if some property of the specified key
or value prevents it from being stored in this map |
|