Heim > Java > javaLernprogramm > Hauptteil

Wie vermeide ich eine ConcurrentModificationException beim Iterieren und Ändern einer ArrayList?

Patricia Arquette
Freigeben: 2024-10-30 08:21:28
Original
753 Leute haben es durchsucht

How to Avoid a ConcurrentModificationException When Iterating and Modifying an 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:

  1. Erstellen Sie eine Liste der zu entfernenden Werte: Fügen Sie während der Iteration Werte hinzu, die entfernt werden müssen, zu einer separaten Liste. Sobald die Iteration abgeschlossen ist, rufen Sie die Methode „removeAll“ für die ursprüngliche Liste auf.
  2. Verwenden Sie die Remove-Methode des Iterators: Anstatt die ArrayList direkt in der Schleife zu ändern, verwenden Sie die Methode „remove“. des Iterators selbst. Dies erfordert die Verwendung der herkömmlichen for-Schleife anstelle der erweiterten for-Schleife.

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

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!