Sobes.tech
Junior — Middle

Was passiert, wenn das Entfernen von Elementen aus der Sammlung während ihrer Iteration verhindert wird?

sobes.tech KI

Antwort von AI

Wenn man während der Iteration einer Sammlung in Java versucht, Elemente direkt daraus zu entfernen (zum Beispiel über die Methode der Sammlung), führt dies zu einer ConcurrentModificationException. Dies liegt daran, dass der Iterator die Änderungen an der Sammlung verfolgt, und das Entfernen außerhalb seiner Methoden die Integrität der Iteration verletzt.

Der richtige Weg, Elemente während der Iteration zu entfernen, ist die Verwendung der remove()-Methode des Iterators selbst:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (Bedingung) {
        iterator.remove(); // sichere Entfernung
    }
}

Auf diese Weise wird die Arbeit des Iterators nicht gestört und es tritt keine Ausnahme auf.