Elemente aus einer Sammlung während der Iteration entfernen
Beim Entfernen von Elementen aus einer Sammlung während der Iteration ist es wichtig, Möglichkeiten zur Vermeidung einer ConcurrentModificationException zu berücksichtigen. Ein Ansatz besteht darin, eine Kopie der Sammlung zu durchlaufen und sicherzustellen, dass während der Iteration keine Änderungen vorgenommen werden. Ein anderer Ansatz ist die Verwendung eines Iterators aus der eigentlichen Sammlung, der direkte Entfernungsvorgänge ermöglicht.
Sammeln und Entfernen
Beim Sammeln- und Entfernen-Ansatz finden wir alle Elemente dazu entfernt werden und in einer separaten Liste gespeichert werden. Nach der Iteration entfernen wir diese Elemente aus der ursprünglichen Sammlung. Diese Technik ist sammlungsunabhängig und funktioniert mit jeder Art von Sammlung.
ListIterator verwenden
Beim Arbeiten mit Listen bietet ein ListIterator eine effizientere Option, da er Elemente unterstützt Entfernen und Hinzufügen während der Iteration. Dieser Ansatz ändert die tatsächliche Sammlung während der Iteration direkt.
JDK 8-Verbesserungen
In Java 8 und späteren Versionen bieten die Methode „removeIf“ und die Streams-API zusätzliche Optionen für Elemententfernung. „removeIf“ ermöglicht es uns, Elemente zu entfernen, die einem Prädikat entsprechen, während Streams es uns ermöglichen, Elemente zu filtern und in einer neuen Sammlung zu speichern, die wir dann verwenden können, um das Original zu ersetzen.
Unterliste oder Teilmenge
Bei sortierten Listen können durch die Verwendung von Unterlisten oder Teilmengen aufeinanderfolgende Elemente effizient entfernt werden. Durch das Löschen der Unterliste oder Teilmenge ändern wir indirekt die ursprüngliche Liste.
Überlegungen
Der beste Ansatz hängt vom jeweiligen Szenario ab:
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente während der Iteration in Java sicher aus einer Sammlung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!