ConcurrentModificationException

Hallo Leute,
ich habe eine Tabelle, wo ich z.B. Datein eintrage. Dann speichere ich den Dateinamen (key) und dessen Pfad (value) in eine Map. Um unnötige Einträge in der Map zu verhindern schreibe ich gerade eine Methode zu überprüfen, ob es Keys gibt die nicht in der Tabelle vorkommen. Dafür habe ich zwar etwas geschrieben, doch bekommen ich immer die "ConcurrentModificationException" Fehlermeldung. Könnte mir da bitte jemand bei helfen? (Ich bin Anfänger).

Java:
private void updateFilePathMap() {
        for (Map.Entry<String, String> entry : filePathMap.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            boolean isThere = false;
            for(int i = 0; i < dtm.getRowCount(); i++){
                if(key.equals(dtm.getValueAt(i, 0))) isThere = true;
            }
            if (isThere == false) {
                filePathMap.remove(key, value);
            }
            isThere = false;
        }
    }
 
Zuletzt bearbeitet von einem Moderator:

httpdigest

Top Contributor
Man kann nicht per Iterator über eine Datenstruktur iterieren, während man die Datenstruktur gleichzeitig (nicht über den Iterator) verändert. Verwende stattdessen direkt einen Iterator und seine remove() Methode:
Java:
private void updateFilePathMap() {
  Iterator<Map.Entry<String, String>> it = filePathMap.entrySet().iterator();
  while (it.hasNext()) {
    Map.Entry<String, String> entry = it.next();
    String key = entry.getKey();
    boolean isThere = false;
    for (int i = 0; i < dtm.getRowCount(); i++) {
      if (key.equals(dtm.getValueAt(i, 0)))
        isThere = true;
    }
    if (!isThere) {
      it.remove();
    }
  }
}
Siehe: https://www.baeldung.com/java-fail-safe-vs-fail-fast-iterator
 
Hat funktioniert, vielen Dank :D. Wie gesagt bin Anfänger und von diesem Iterator hab ich z.B. noch nie was gehört. Dann werde ich mich mal darüber besser informieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D java.util.ConcurrentModificationException tritt auf Allgemeine Java-Themen 12
F ConcurrentModificationException warum ? Allgemeine Java-Themen 7
K Collections java.util.ConcurrentModificationException Allgemeine Java-Themen 3
N ConcurrentModificationException Allgemeine Java-Themen 2
S java.util.ConcurrentModificationException - aber nur ein Thread Allgemeine Java-Themen 3
D java.util.ConcurrentModificationException - per Copy vermeiden Allgemeine Java-Themen 11
D java.util.ConcurrentModificationException bei ArrayList Allgemeine Java-Themen 2
F ConcurrentModificationException Allgemeine Java-Themen 2
P Vectoren bearbeiten: ConcurrentModificationException Allgemeine Java-Themen 4
B ConcurrentModificationException Allgemeine Java-Themen 3
G ConcurrentModificationException - finds nicht Allgemeine Java-Themen 5
S Fehler ConcurrentModificationException Allgemeine Java-Themen 8
R java.util.ConcurrentModificationException vermeiden? Allgemeine Java-Themen 8
R ConcurrentModificationException Allgemeine Java-Themen 9
D ConcurrentModificationException nicht nachvollziehbar Allgemeine Java-Themen 8
K Threading - schreiben auf Hashmap/löschen - ConcurrentModificationException Allgemeine Java-Themen 3
J java.util.ConcurrentModificationException bei HashMap? Allgemeine Java-Themen 2
G ConcurrentModificationException Allgemeine Java-Themen 4
E ConcurrentModificationException Allgemeine Java-Themen 6
R ConcurrentModificationException trotz synchronized? Allgemeine Java-Themen 12
P java.util.ConcurrentModificationException Allgemeine Java-Themen 9
M ConcurrentModificationException Allgemeine Java-Themen 6
S ConcurrentModificationException Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben