ConcurrentHashMap 常用方法

2021-09-26 08:10:44 字數 1113 閱讀 2641

void clear()

從該對映中移除所有對映關係

boolean containskey(object key)

測試指定物件是否為此表中的鍵。

boolean containsvalue(object value)

如果此對映將乙個或多個鍵對映到指定值,則返回 true。

enumeration elements()

返回此表中值的列舉。

set> entryset()

返回此對映所包含的對映關係的 set 檢視。

v get(object key)

返回指定鍵所對映到的值,如果此對映不包含該鍵的對映關係,則返回 null。

boolean isempty()

如果此對映不包含鍵-值對映關係,則返回 true。

enumeration keys()

返回此表中鍵的列舉。

set keyset()

返回此對映中包含的鍵的 set 檢視。

v put(k key, v value)

將指定鍵對映到此表中的指定值。

void putall(map<? extends k,? extends v> m)

將指定對映中所有對映關係複製到此對映中。

v putifabsent(k key, v value)

如果指定鍵已經不再與某個值相關聯,則將它與給定值關聯。

vremove(object key)

從此對映中移除鍵(及其相應的值)。

boolean remove(object key, object value)

只有目前將鍵的條目對映到給定值時,才移除該鍵的條目。

v replace(k key, v value)

只有目前將鍵的條目對映到某一值時,才替換該鍵的條目。

boolean replace(k key, v oldvalue, v newvalue)

只有目前將鍵的條目對映到給定值時,才替換該鍵的條目。

int size()

返回此對映中的鍵-值對映關係數。

collection values()

返回此對映中包含的值的 collection 檢視。

ConcurrentHashMap 併發雜湊對映

如執行緒1使用put進行新增元素,執行緒2不但不能使用put方法新增元素,並且也不能使用get方法來獲取元素,所以競爭越激烈效率越低。圖1 1 hashtable中在put 方法上加鎖 hashtable容器在競爭激烈的併發環境下表現出效率低下的原因,是因為所有訪問hashtable的執行緒都必須競...

ConcurrentHashMap 原理簡要分析

在之前寫過hashtable 與hashmap 兩者之間的異同 通過前面文章,可以知道hashmap 中未進行同步考慮,而 hashtable 則使用了 synchronized 帶來的直接影響就是可選擇,我們可以在單執行緒時使用 hashmap 提高效率,而多執行緒時用 hashtable 來保證...

ConcurrentHashMap使用示例

concurrenthashmap是併發效率更高的map,用來替換其他執行緒安全的map容器,比如hashtable和collections.synchronizedmap。實際上,併發執行時,執行緒安全的容器只能保證自身的資料不被破壞,但無法保證業務的行為是否正確。錯誤的理解這裡的執行緒安全,不恰...