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