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

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

Linda Hamilton
Freigeben: 2024-12-17 08:25:25
Original
422 Leute haben es durchsucht

How to Safely Remove Elements from an ArrayList During Iteration?

Vermeiden einer gleichzeitigen Änderungsausnahme beim Entfernen von Elementen aus ArrayList während der Iteration

Ändern einer Sammlung während der Iteration über sie mithilfe der erweiterten for-Schleife (for- jede Schleife) kann zur berüchtigten ConcurrentModificationException führen. Dies tritt auf, wenn während der Iteration versucht wird, ein Element aus einer ArrayList zu entfernen.

Ursache:

Die for-Schleife erstellt intern eine Kopie der Liste und iteriert darüber dieses Exemplar. Wenn ein Element aus der Originalliste entfernt wird, wird die Größe der Kopie sofort reduziert, was dazu führt, dass der Index des aktuellen Elements ungültig wird.

Lösung:

Um dieses Problem zu vermeiden, verwenden Sie einen Iterator zusammen mit der Methode „remove()“.

Iterator Ansatz:

Ein Iterator ist ein Objekt, das über die Elemente einer Sammlung iteriert. Es verfügt über Methoden wie hasNext, die prüft, ob weitere Elemente vorhanden sind, und next, die das nächste Element zurückgibt. Die Verwendung eines Iterators ermöglicht das sichere Entfernen während der Iteration.

Iterator<String> iter = myArrayList.iterator();

while (iter.hasNext()) {
    String str = iter.next();

    if (someCondition)
        iter.remove();
}
Nach dem Login kopieren

Bei diesem Ansatz behält der Iterator seinen internen Zustand bei und stellt so sicher, dass der Index auch nach dem Entfernen eines Elements gültig bleibt. Die Methode iter.remove() entfernt das aktuelle Element sicher aus der Originalliste.

Hinweis: Dieser Ansatz ist effizienter als die Verwendung einer herkömmlichen for-Schleife mit einem Index, da er keinen Index benötigt Pflege einer separaten Indexvariablen und Aktualisierung nach jedem Entfernen.

Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente während der Iteration 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