/ /ハッシュマップを反復しながら要素をハッシュマップから削除-Java、ハッシュマップ、同時変更

ハッシュマップから反復処理中の要素を削除する - java、hashmap、concurrentmodification

これが私のコードです。訪問した要素の配列リストがあります。そのため、これらの訪問した要素をハッシュマップから削除したいと思います。以下はコードです。同時変更の例外が発生します。

private static void removeVisitedNodes(ArrayList<String> arrayList) {
// TODO Auto-generated method stub

Iterator<String> it = arrayList.iterator();
String temp;
while(it.hasNext())
{
temp = it.next();
System.out.println("temp is " + temp);
Iterator<Entry<String, ArrayList<String>>> iter = neighbours_reachability_map.entrySet().iterator();

// iterate through the hashmap to remove elements
while (iter.hasNext()) {
Entry<String, ArrayList<String>> entry = iter.next();
if(entry.getValue().contains(temp)){
//System.out.println("Contains it"  + entry.getValue().toString());
entry.getValue().remove(temp);
}
}

}
}

他の同様の質問をいくつか確認しましたが、あまり役に立ちませんでした。例外を発生させずにこれを行うきちんとした方法はありますか?よろしくお願いします。

回答:

回答№1は2

繰り返しの途中で要素を削除するには、使用します Iterator.remove().


回答№2の場合は1

削除したい要素を別のコレクションオブジェクトに配置し、反復が終了したら、それらの要素を削除できます。