我不明白为什么当我遍历 this 时会得到 ConcurrentModificationException multimap
。我阅读了以下条目,但我不确定我是否理解了整个事情。我试图添加一个同步块。但我的疑问是与什么同步,何时同步。
这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++;
}
}