Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Standard Ed. 5.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.util.concurrent
Interface ConcurrentMap<K,V>

Type Parameters:
  `K` - the type of keys maintained by this map
  `V` - the type of mapped values

All Superinterfaces:
  Map<K,V>

All Known Implementing Classes:
  ConcurrentHashMap

    public interface ConcurrentMap<K,V>

extends Map<K,V>

A `Map` providing additional atomic `putIfAbsent`, `remove`, and `replace` methods.

This interface is a member of the Java Collections Framework.

Since:
  1.5

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 value)` Remove entry for key only if currently mapped to given value.
`V` | `replace(K key, V value)` Replace entry for key only if currently mapped to some value.
`boolean` | `replace(K key, V oldValue, V newValue)` Replace entry for key only if currently mapped to 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

### putIfAbsent

    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.

  Parameters:
    `key` - key with which the specified value is to be associated.
    `value` - value to be associated with the specified key.
  Returns:
    previous value associated with specified key, or `null` if there was no mapping for key. A `null` return can also indicate that the map previously associated `null` with the specified key, if the implementation supports `null` values.
  Throws:
    `UnsupportedOperationException` - if the `put` operation is not supported by this map.
    `ClassCastException` - if the class of the specified key or value prevents it from being stored in this map.
    `IllegalArgumentException` - if some aspect of this key or value prevents it from being stored in this map.
    `NullPointerException` - if this map does not permit `null` keys or values, and the specified key or value is `null`.

### remove

    boolean remove(Object key,
                   Object value)

  Remove entry for key only if currently mapped to given value. Acts as

        if ((map.containsKey(key) && map.get(key).equals(value)) {
           map.remove(key);
           return true;
       } else return false;

  except that the action is performed atomically.

  Parameters:
    `key` - key with which the specified value is associated.
    `value` - value associated with the specified key.
  Returns:
    true if the value was removed, false otherwise
  Throws:
    `UnsupportedOperationException` - if the `remove` operation is not supported by this map.
    `NullPointerException` - if this map does not permit `null` keys or values, and the specified key or value is `null`.

### replace

    boolean replace(K key,
                    V oldValue,
                    V newValue)

  Replace entry for key only if currently mapped to given value. Acts as

        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.

  Parameters:
    `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.
  Returns:
    true if the value was replaced
  Throws:
    `UnsupportedOperationException` - if the `put` operation is not supported by this map.
    `NullPointerException` - if this map does not permit `null` keys or values, and the specified key or value is `null`.

### replace

    V replace(K key,
              V value)

  Replace entry for key only if currently mapped to some value. Acts as

        if ((map.containsKey(key)) {
           return map.put(key, value);
       } else return null;

  except that the action is performed atomically.

  Parameters:
    `key` - key with which the specified value is associated.
    `value` - value to be associated with the specified key.
  Returns:
    previous value associated with specified key, or `null` if there was no mapping for key. A `null` return can also indicate that the map previously associated `null` with the specified key, if the implementation supports `null` values.
  Throws:
    `UnsupportedOperationException` - if the `put` operation is not supported by this map.
    `NullPointerException` - if this map does not permit `null` keys or values, and the specified key or value is `null`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Standard Ed. 5.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.