Java迭代并从地图中删除

我在做:

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>);

以上是 Java迭代并从地图中删除 的全部内容, 来源链接: utcz.com/qa/401749.html

回到顶部