所以我有ListMultimap<Integer, List<someDataType>> containerSizeToDestQuanMap
。我试图按如下方式迭代它:
Map<Integer, Collection<List<someDataType>>> sourceMapConverted = this.containerSizeToDestQuanMap.asMap();
for (Entry<Integer, Collection<List<DestQuanTuple>>> entry : sourceMapConverted.entrySet()) {
// do something
如果,当我“做某事”时,我实际上修改了containerSizeToDestQuanMap,我会收到ConcurrentModificationException
吗?如果是这样,那么解决这个问题的唯一方法就是克隆我的containerSizeToDestQuanMap
,然后对其进行迭代,修改原始文件?
例如,//do something
可能是:
containerSizeToDestQuanMap.remove(something, something)
。
答案 0 :(得分:0)
您必须在Iterator
上使用sourceMapConverted
,而不是直接操作。
例如:
//iterating over keys only
for (Object key : map.keySet()) {
System.out.println("Key = " + key);
}
//iterating over values only
for (Objvalue : map.values()) {
System.out.println("Value = " + value);
}
迭代时,您可以在迭代器上进行修改。