Mögliche Duplizieren:
ConcurrentModificationException and a HashMapjava.util.ConcurrentModificationException in Iterieren über TreeSet
ich die folgende Ausnahme bekommen
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.TreeMap$PrivateEntryIterator.nextEntry(Unknown Source)
at java.util.TreeMap$KeyIterator.next(Unknown Source)
at Types$AdjList.makeConnected(Types.java:281)
at Main.main(Main.java:56)
während den folgenden Code ausführen
public void makeConnected() {
TreeSet<Node> exploredNodes = new TreeSet<Node>();
TreeSet<Node> unexploredNodes = new TreeSet<Node>();
for (Node n : unexploredNodes) {
...
exploredNodes.add(n);
unexploredNodes.remove(n);
...
}
Ich verwende nicht den Iterator wie in HashMap, sondern muss ein Set verwenden, das basierend auf einer Bedingung wachsen oder reduzieren kann. Ich werde alle Antworten akzeptieren und Punkte geben. Freuen Sie sich auf, wie man antwortet, wie dieses Problem von ConcurrentModificationException Dank zu lösen, Somnath
@assylias: Ok, ich sehe es Iterator für – somnathchakrabarti
@assylias TreeSet ist: Aber es gibt keine iterator.remove() für TreeSet. Wissen Sie, wie Sie mit einem Iterator aus einem TreeSet entfernen können? – somnathchakrabarti
Alle Iteratoren verfügen über eine remove-Methode. Überprüfen Sie den zweiten Code in der ersten Antwort im obigen Link und ersetzen Sie die Karte durch Ihre Menge. – assylias