JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
インタフェース ConcurrentMap<K,V>

型パラメータ:
K - このマップにより維持されるキーの型
V - マッピングされた値の型
すべてのスーパーインタフェース:
Map<K,V>
既知の実装クラスの一覧:
ConcurrentHashMap

public interface ConcurrentMap<K,V>
extends Map<K,V>

追加の原子的 putIfAbsentremovereplace メソッドを提供する Map

このインタフェースは、Java Collections Framework のメンバです。

導入されたバージョン:
1.5

入れ子のクラスの概要
 
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース
Map.Entry<K,V>
 
メソッドの概要
 V putIfAbsent(K key, V value)
          指定されたキーが値と関連付けられていない場合は、指定された値に関連付けます。
 boolean remove(Object key, Object value)
          キーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを削除します。
 V replace(K key, V value)
          キーが値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
 boolean replace(K key, V oldValue, V newValue)
          キーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
 
インタフェース java.util.Map から継承されたメソッド
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

メソッドの詳細

putIfAbsent

V putIfAbsent(K key,
              V value)
指定されたキーが値と関連付けられていない場合は、指定された値に関連付けます。これは、以下と等価です。

   if (!map.containsKey(key)) 
      return map.put(key, value);
   else
      return map.get(key);
 
ただし、アクションが原子的に実行される点が異なります。

パラメータ:
key - 指定される値が関連付けられるキー
value - 指定されるキーに関連付けられる値
戻り値:
指定されたキーに関連した以前の値。key にマッピングがなかった場合は null。また、null の戻り値は、実装が null 値をサポートしている場合は、指定されたキーに以前マップが null を関連付けていたことを示す場合もある
例外:
UnsupportedOperationException - put オペレーションがマップによってサポートされていない場合
ClassCastException - 指定されたキーまたは値のクラスが原因で、マップに格納できない場合
IllegalArgumentException - このキーまたは値の特性が原因で、マップに格納できない場合
NullPointerException - マップが null キーや null 値を許可しないときに、指定されたキーまたは値が null の場合

remove

boolean remove(Object key,
               Object value)
キーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを削除します。次のように動作します。
 
  if ((map.containsKey(key) && map.get(key).equals(value)) {
     map.remove(key);
     return true;
 } else return false;
 
ただし、アクションが原子的に実行される点が異なります。

パラメータ:
key - 指定される値が関連付けられるキー
value - 指定されるキーに関連付けられる値
戻り値:
値が削除された場合は true、そうでない場合は false
例外:
UnsupportedOperationException - このマップが remove オペレーションをサポートしない場合
NullPointerException - マップが null キーや null 値を許可しないときに、指定されたキーまたは値が null の場合

replace

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;
 
ただし、アクションが原子的に実行される点が異なります。

パラメータ:
key - 指定される値が関連付けられるキー
oldValue - 指定されるキーに関連付けられると予想される値
newValue - 指定されるキーに関連付けられる値
戻り値:
値が置換された場合は true
例外:
UnsupportedOperationException - put オペレーションがマップによってサポートされていない場合
NullPointerException - マップが null キーや null 値を許可しないときに、指定されたキーまたは値が null の場合

replace

V replace(K key,
          V value)
キーが値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。次のように動作します。
 
  if ((map.containsKey(key)) {
     return map.put(key, value);
 } else return null;
 
ただし、アクションが原子的に実行される点が異なります。

パラメータ:
key - 指定される値が関連付けられるキー
value - 指定されるキーに関連付けられる値
戻り値:
指定されたキーに関連した以前の値。key にマッピングがなかった場合は null。また、null の戻り値は、実装が null 値をサポートしている場合は、指定されたキーに以前マップが null を関連付けていたことを示す場合もある
例外:
UnsupportedOperationException - put オペレーションがマップによってサポートされていない場合
NullPointerException - マップが null キーや null 値を許可しないときに、指定されたキーまたは値が null の場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。