【发布时间】:2017-03-30 11:32:48
【问题描述】:
我有一个 HashMap:
public static Map<String, Set<String>> adjMap = new HashMap<String, Set<String>>();
adjMap.put(title, new HashSet<String>());
adjMap.get(title).add(cutTitle(graphLink));
现在我想从不包含作为键的值 (HashSet) 中删除所有条目。
到目前为止,这是我的代码:
for(String s: adjMap.keySet()){
for(Set<String> s1: adjMap.values()){
for(String s2: s1){
if(!s.contains(s2)){
s1.remove(s2);
}
}
}
}
但我得到一个例外:
线程“主”java.util.ConcurrentModificationException 中的异常
【问题讨论】:
-
您正在尝试修改 Foreach 循环中的 Hashset,但它使用的是自己的迭代器。
-
使用
ConcurrentHashMap而不是HashMap