Heim >Java >javaLernprogramm >Wie entferne ich Elemente sicher aus einer Sammlung, während ich in Java iteriere?
Elemente aus Sammlungen während der Iteration entfernen
Beim Arbeiten mit Sammlungen ist es notwendig, Elemente während der Iteration zu ändern oder zu entfernen. Das Ändern einer Sammlung während der Iteration kann jedoch zu einer ConcurrentModificationException führen. Um dies zu vermeiden, gibt es mehrere Ansätze:
Iterieren über eine Kopie der Sammlung
Ein Ansatz besteht darin, vor dem Iterieren eine Kopie der Sammlung zu erstellen. Dadurch können Sie die Kopie ändern, ohne dass sich dies auf die Originalsammlung auswirkt. Hier ist ein Beispiel:
List<Foo> fooListCopy = new ArrayList<>(fooList); for (Foo foo : fooListCopy) { // Modify actual fooList }
Verwendung des Iterators der tatsächlichen Sammlung
Ein alternativer Ansatz besteht darin, den Iterator der tatsächlichen Sammlung zu verwenden. Mit diesem Ansatz können Sie die Sammlung während der Iteration ändern. Hier ist ein Beispiel:
Iterator<Foo> itr = fooList.iterator(); while (itr.hasNext()) { // Modify actual fooList using itr.remove() }
Überlegungen zur Auswahl eines Ansatzes
Die Wahl zwischen diesen Ansätzen hängt von mehreren Faktoren ab:
Zusätzliche Techniken zum Entfernen von Elementen
Zusätzlich zu diesen Ansätzen Java 8 bietet mehrere andere Techniken zum Entfernen von Elementen während der Iteration, darunter:
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente sicher aus einer Sammlung, während ich in Java iteriere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!