我在迭代地图内容时获得ConcurrentModificationException
for (String sourceKey : sMap.getContent().keySet()) {
List<String> sourceValues = sMap.getValues(sourceKey);
List<String> targetValues = tMap.getValues(sourceKey);
if (areMultiple(sourceValues)) {
....
}
sMap.getContent()
返回Map<String, List<String>>
,其中我只获取密钥。
请注意,不会修改地图的内容。我只是在这里迭代。
我在这里做错了什么?如何在抛出异常时纠正这种情况?
答案 0 :(得分:2)
如果迭代的基础集合被Iterator本身以外的任何东西修改,就会发生这种情况。
尝试使用ConcurrentHashMap而不是普通的HashMap