Behandeln von ConcurrentModificationException während gleichzeitiger Iteration und Entfernung in ArrayList
In Java kann das Durchlaufen einer Sammlung bei gleichzeitiger Änderung derselben zu einem Java führen. util.ConcurrentModificationException. Diese Ausnahme tritt auf, wenn die Struktur der Sammlung während der Iteration aufgrund von Vorgängen zum Hinzufügen oder Entfernen geändert wird.
Um dieses Problem bei der Arbeit mit ArrayList zu umgehen, beachten Sie die folgenden Best Practices:
Erstellen Sie eine Liste der zu entfernenden Elemente:
Führen Sie eine separate Liste, um Elemente zu verfolgen, die entfernt werden müssen. Fügen Sie die Elemente innerhalb der Schleife einfach zu dieser Liste hinzu, anstatt sie direkt aus der ursprünglichen Liste zu entfernen. Sobald die Schleife abgeschlossen ist, verwenden Sie die Methode „removeAll()“ von ArrayList, um alle Elemente aus der Liste zu entfernen.
Verwenden Sie die Remove-Methode von Iterator:
Employ die auf dem Iterator selbst verfügbare Methode „remove()“. Beachten Sie, dass hierfür die in Java 8 erweiterte for-Schleifensyntax zum Durchlaufen der Liste aufgegeben werden muss.
Wenn Sie beispielsweise Zeichenfolgen mit einer Länge von mehr als fünf aus einer ArrayList entfernen möchten:
<code class="java">List<String> list = new ArrayList<String>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente während der gleichzeitigen Iteration in Java sicher aus einer ArrayList?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!