我不明白为什么在遍历这个multimap
时会出现ConcurrentModificationException异常。我阅读了下面的条目,但我不确定是否完全理解了其中的内容。
我尝试添加了一个同步块。但我的疑问是,要与何同步,以及何时同步。
multimap
是一个字段,并像这样创建:
private Multimap<GenericEvent, Command> eventMultiMap =
Multimaps.synchronizedMultimap(HashMultimap.<GenericEvent, Command> create());
并且可以像这样使用:
eventMultiMap.put(event, command);
像这样(我试图将此部分与地图同步,但没有成功)
for (Entry<GenericEvent, Command> entry : eventMultiMap.entries()) {
if (entry.getValue().equals(command)) {
eventMultiMap.remove(entry.getKey(), entry.getValue());
nbRemoved++;
}
}