JavaTM 2 Platform
Standard Ed. 6

java.util.concurrent
介面 ConcurrentMap<K,V>

型別參數:
K - 此映射維護的鍵型別
V - 映射值的型別
所有父級介面:
Map<K,V>
所有已知子介面:
ConcurrentNavigableMap<K,V>
所有已知實作類別:
ConcurrentHashMap, ConcurrentSkipListMap

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

提供其他原子 putIfAbsentremovereplace 方法的 Map

記憶體一致性效果:當存在其他共時 collection 時,將物件放入 ConcurrentMap 之前的執行緒中的操作 happen-before 隨後通過另一執行緒從 ConcurrentMap 中存取或移除該元素的操作。

此介面是 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 - 與指定鍵相關聯的值
返回:
與指定鍵相關聯的先前值,如果該鍵沒有映射關係,則返回 null。(如果該實作支持 null 值,則返回 null 還可以指示此映射以前曾將 null 與該鍵相關聯)。
拋出:
UnsupportedOperationException - 如果此映射不支持 put 操作
ClassCastException - 如果指定鍵或值的類別不允許將其存儲在此映射中
NullPointerException - 如果指定鍵或值為 null,並且此映射不允許 null 鍵或值
IllegalArgumentException - 如果指定鍵或值的某些屬性不允許將其存儲在此映射中

remove

boolean remove(Object key,
               Object value)
只有目前將鍵的條目映射到給定值時,才移除該鍵的條目。這等效於:
   if (map.containsKey(key) && map.get(key).equals(value)) {
       map.remove(key);
       return true;
   } else return false;
不同之處在於該操作是以原子方式 (atomically) 執行的。

參數:
key - 與指定值相關聯的鍵
value - 期望與指定鍵相關聯的值
返回:
如果該值被移除,則返回 true
拋出:
UnsupportedOperationException - 如果此映射不支持 remove 操作
ClassCastException - 如果該鍵或值是此映射的合適型別(可選)
NullPointerException - 如果指定鍵或值為 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 操作
ClassCastException - 如果指定鍵或值的類別不允許將其存儲在此映射中
NullPointerException - 如果指定鍵或值為 null,並且此映射不允許 null 鍵或值
IllegalArgumentException - 如果指定鍵或值的某些屬性不允許將其存儲在此映射中

replace

V replace(K key,
          V value)
只有目前將鍵的條目映射到某一值時,才替換該鍵的條目。這等效於:
   if (map.containsKey(key)) {
       return map.put(key, value);
   } else return null;
不同之處在於該操作是以原子方式執行的。

參數:
key - 與指定值相關聯的鍵
value - 與指定鍵相關聯的值
返回:
與指定鍵相關聯的先前值,如果該鍵沒有映射關係,則返回 null。(如果該實作支持 null 值,則返回 null 還可以指示此映射以前曾將 null 與該鍵相關聯)。
拋出:
UnsupportedOperationException - 如果此映射不支持 put 操作
ClassCastException - 如果指定鍵或值的類別不允許將其存儲在此映射中
NullPointerException - 如果指定鍵或值為 null,並且此映射不允許 null 鍵或值
IllegalArgumentException - 如果指定鍵或值的某些屬性不允許將其存儲在此映射中

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only