Home » openjdk-7 » java » util » concurrent » [javadoc | source]
java.util.concurrent
public interface: ConcurrentMap [javadoc | source]

All Implemented Interfaces:
    Map

All Known Implementing Classes:
    ConcurrentNavigableMap, SubMap, ConcurrentSkipListMap, ConcurrentHashMap

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 {@code ConcurrentMap} as a key or value happen-before actions subsequent to the access or removal of that object from the {@code ConcurrentMap} in another thread.

This interface is a member of the Java Collections Framework.

Method from java.util.concurrent.ConcurrentMap Summary:
putIfAbsent,   remove,   replace,   replace
Method from java.util.concurrent.ConcurrentMap Detail:
 public V putIfAbsent(K key,
    V 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.
 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.
 public V replace(K key,
    V 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.
 public boolean replace(K key,
    V oldValue,
    V 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.