K - the type of keys maintained by this mapV - the type of mapped valuespublic interface ConcurrentMap<K,V> extends Map<K,V>
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.
| Modifier and Type | Method and Description | 
|---|---|
| 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 value)Removes the entry for a key only if currently mapped to a given value. | 
| V | replace(K key,
       V value)Replaces the entry for a key only if currently mapped to some value. | 
| boolean | replace(K key,
       V oldValue,
       V newValue)Replaces the entry for a key only if currently mapped to a given value. | 
V putIfAbsent(K key, V value)
   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 keyUnsupportedOperationException - if the put operation
         is not supported by this mapClassCastException - if the class of the specified key or value
         prevents it from being stored in this mapNullPointerException - if the specified key or value is null,
         and this map does not permit null keys or valuesIllegalArgumentException - if some property of the specified key
         or value prevents it from being stored in this mapboolean remove(Object key, Object value)
   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 keyUnsupportedOperationException - if the remove operation
         is not supported by this mapClassCastException - if the key or value is of an inappropriate
         type for this map
         (optional)NullPointerException - 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)
   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 keyUnsupportedOperationException - if the put operation
         is not supported by this mapClassCastException - if the class of a specified key or value
         prevents it from being stored in this mapNullPointerException - if a specified key or value is null,
         and this map does not permit null keys or valuesIllegalArgumentException - if some property of a specified key
         or value prevents it from being stored in this mapV replace(K key, V value)
   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 keyUnsupportedOperationException - if the put operation
         is not supported by this mapClassCastException - if the class of the specified key or value
         prevents it from being stored in this mapNullPointerException - if the specified key or value is null,
         and this map does not permit null keys or valuesIllegalArgumentException - if some property of the specified key
         or value prevents it from being stored in this map Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2012, Oracle and/or its affiliates.  All rights reserved.