我正在做:
for (Object key : map.keySet())
if (something)
map.remove(key);
原代码抛出了ConcurrentModificationException异常,所以我做了以下更改:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
这个方法以及任何其他修改地图的过程都在同步块中执行。
有更好的解决方案吗?