【发布时间】:2010-12-25 11:42:22
【问题描述】:
我在做:
for (Object key : map.keySet())
if (something)
map.remove(key);
抛出了 ConcurrentModificationException,所以我将其更改为:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
这个以及任何其他修改地图的过程都在同步块中。
有更好的解决方案吗?
【问题讨论】:
-
如果这个方法和其他修改地图的方法在同步块中,我不明白你为什么要做什么?也许我不完全理解你的问题?你能把剩下的代码贴出来吗?
-
@Raedwald,这个问题和它被接受的答案比其他 IMO 更简洁。
标签: java