如果我有一个Map用Java 实现接口的对象,并希望迭代其中包含的每一对,那么通过地图的最有效方法是什么?
元素的排序是否取决于我对界面的具体映射实现?
我在做:
for (Object key : map.keySet())
if (something)
map.remove(key);
Run Code Online (Sandbox Code Playgroud)
它引发了一个ConcurrentModificationException,所以我将其更改为:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
Run Code Online (Sandbox Code Playgroud)
这个,以及修改地图的任何其他过程都在同步块中.
有更好的解决方案吗?
如果没有人想出一个更好的解决方案,首先要说没有得到勾号;)