Heim > Java > javaLernprogramm > Wie entferne ich Elemente während der gleichzeitigen Iteration in Java sicher aus einer ArrayList?

Wie entferne ich Elemente während der gleichzeitigen Iteration in Java sicher aus einer ArrayList?

Susan Sarandon
Freigeben: 2024-10-29 10:14:03
Original
929 Leute haben es durchsucht

How to Safely Remove Elements from an ArrayList During Concurrent Iteration in Java?

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage