我如何检查元素是否已从Map
Java中正确删除?
鉴于:
ConcurrentHashMap<Integer,Object> myMap = new ConcurrentHashMap<>();
myMap.put(1, new Object());
myMap.remove(1);
以下代码是检查它的唯一方法吗?
myMap.contains(1);
remove()
返回移除的对象,或者null
如果地图中不存在该对象:
返回:
与键关联的先前值;如果没有键的映射关系,则返回 null。
Object removedObject = myMap.remove(1);
boolean wasRemoved = removedObject != null;
实际上,如果在contains()
线程之间共享映射,则通过使用,可以在调用remove()
和之间的另一个线程删除该对象contains()
。您的问题ConcurrentHashMap
暗示使用并发可能是这种情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句