如何检查一个元素是否已从地图中删除?

我如何检查一个元素是否已经从一个 Map 在java中?

给出。

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

myMap.remove(1);

下面的代码是检查它的唯一方法吗?

myMap.contains(1);

解决方案:

remove() 返回被移除的对象,或者 null 如果它不存在于地图中。

返回: 与key相关联的前一个值,如果key没有映射,则返回null。

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

其实通过使用 contains()对象可能已经被另一个线程在两次调用到 remove()contains()如果线程之间共享地图。你的问题使用的是 ConcurrentHashMap 暗示,这里可能是并发的情况。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Ingress serviceName更新后,如何应用变换器插件?

2022-11-13 21:16:21

未分类

使用msys2构建pjsip 2.10。

2022-11-13 21:16:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索