edu.emory.mathcs.backport.java.util.concurrent
Interface ConcurrentMap
- Map
- ConcurrentNavigableMap
- ConcurrentHashMap, ConcurrentSkipListMap
public interface ConcurrentMap
extends Map
Object | putIfAbsent(Object key, Object value) - If the specified key is not already associated
with a value, associate it with the given value.
|
boolean | remove(Object key, Object value) - Removes the entry for a key only if currently mapped to a given value.
|
Object | replace(Object key, Object value) - Replaces the entry for a key only if currently mapped to some value.
|
boolean | replace(Object key, Object oldValue, Object newValue) - Replaces the entry for a key only if currently mapped to a given value.
|
putIfAbsent
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 associatedvalue
- value to be associated with the specified key
- 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.)
remove
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 associatedvalue
- value expected to be associated with the specified key
- true if the value was removed
replace
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 associatedvalue
- value to be associated with the specified key
- 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.)
replace
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 associatedoldValue
- value expected to be associated with the specified keynewValue
- value to be associated with the specified key
- true if the value was replaced