我正在尝试使用 2 个迭代器迭代 HashMap。首先,对于哈希中的每个键(整数),我计算“相似”数字(在这种特殊情况下相似的数字实际上并不重要),然后我必须删除与当前键相似的键,使其当前键的值。我不断收到此异常
线程“主”java.util.ConcurrentModificationException 中的异常。可能是什么原因?我必须使用 ConcurrentHashMap 吗?
这是我正在编译的代码:
Set<Node> keySet = hash.keySet();
Iterator<Node> it = keySet.iterator();
while(it.hasNext()){
Node key = it.next();
ArrayList<Integer> similar = getAppropriateNum(key.getLabel(), 2);
for(int j = 0; j < similar.size(); j++){
Iterator<Node> it2 = keySet.iterator();
while(it2.hasNext()){
Node nod = it2.next();
if(nod.getLabel() == similar.get(j) && !nod.equals(key)){
it2.remove();
hash.put(key, nod);
}//end if
}//end while
}//end for
}//end while