Heim >Java >javaLernprogramm >Wie vermeide ich eine ConcurrentModificationException beim Iterieren und Ändern einer ArrayList?
ConcurrentModificationException tritt auf, wenn eine ArrayList gleichzeitig durchlaufen (iteriert) und geändert wird. In diesem Artikel werden die Best Practices für den Umgang mit dieser Ausnahme untersucht und alternative Ansätze beschrieben.
Ausnahme gleichzeitiger Änderungen vermeiden
Um das Auftreten der Ausnahme zu verhindern, stehen zwei Optionen zur Verfügung:
Beispiel für die Remove-Methode von Iterator:
Betrachten Sie das Szenario des Entfernens von Zeichenfolgen mit einer Länge größer als 5 aus einer ArrayList:
<code class="java">List<String> list = new ArrayList<>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
In diesem Beispiel wird die „remove“-Methode des Iterators verwendet, um die ursprüngliche Liste während der Iteration sicher zu ändern.
Das obige ist der detaillierte Inhalt vonWie vermeide ich eine ConcurrentModificationException beim Iterieren und Ändern einer ArrayList?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!