簡體   English   中英

如何檢查一個元素是否已從 Map 中刪除

[英]How to check if an element has been removed from a Map

如何檢查某個元素是否已從Map中的 Map 中正確刪除?

鑒於:

ConcurrentHashMap<Integer,Object> myMap = new ConcurrentHashMap<>();
myMap.put(1, new Object());

myMap.remove(1);

下面的代碼是檢查它的唯一方法嗎?

myMap.contains(1);

如果 map 中不存在, remove()返回已刪除的 object 或null

回報:
與鍵關聯的先前值,如果沒有鍵映射,則為 null。

Object removedObject = myMap.remove(1);
boolean wasRemoved = removedObject != null;

事實上,通過使用contains() () ,如果 map 在線程之間共享,則 object 可能已在調用remove()contains()之間被另一個線程刪除。 您的問題使用ConcurrentHashMap暗示並發可能是這里的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM