ListMultimap asMap() - 迭代时修改?

时间:2013-06-25 18:29:00

标签: java multimap

所以我有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)

1 个答案:

答案 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);
}

迭代时,您可以在迭代器上进行修改。