遍历地图并从地图中删除

斯坦顿:

我在做:

for (Object key : map.keySet())
    if (something)
        map.remove(key);

这引发了ConcurrentModificationException,所以我将其更改为:

for (Object key : new ArrayList<Object>(map.keySet()))
    if (something)
        map.remove(key);

此操作以及任何其他修改映射的过程都在同步块中。

有更好的解决方案吗?

如果没有人提出更好的解决方案,那么首先要说“没有”;)

诺亚:

从Java 8开始,您可以执行以下操作:

map.entrySet().removeIf(e -> <boolean expression>);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章