Sicheres Iterieren mit Iteratoren
Ändern einer Sammlung beim Durchlaufen mit Eine foreach-Schleife kann zu Fehlern führen. Um Elemente während der Iteration sicher zu entfernen, verwenden Sie einen expliziten Iterator.
List<String> names = ... Iterator<String> i = names.iterator(); while (i.hasNext()) { String s = i.next(); if (...) { i.remove(); } }
Concurrent Modification Exception
Ohne Verwendung eines Iterators schlägt der Code mit einer ConcurrentModificationException fehl, wenn die Die Sammlung wird während der Iteration geändert. Der explizite Iterator stellt sicher, dass die Änderungen nachverfolgt und in der zugrunde liegenden Sammlung widergespiegelt werden.
Hinweis zur verschachtelten Entfernung
Im bereitgestellten Beispiel wird die innere While-Schleife weiterhin entfernt das gleiche Element, bis es nicht mehr existiert. Obwohl es technisch gesehen legal ist, gilt es im Allgemeinen als schlechte Praxis, es sei denn, es gibt einen ganz bestimmten Grund.
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente während der Iteration sicher aus einer Java-Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!