Umgang mit gleichzeitigen Änderungen in der ArrayList-Iteration
Beim Durchlaufen einer ArrayList und gleichzeitigem Entfernen von Elementen kann es zu einer gefürchteten java.util.ConcurrentModificationException kommen . Um dieses Problem anzugehen, sollten Sie die folgenden Strategien in Betracht ziehen:
1. Erstellen Sie eine Entfernungsliste
Führen Sie eine separate Liste der zu entfernenden Elemente. Fügen Sie während der Iteration einfach Elemente zu dieser Liste hinzu, anstatt sie direkt aus der ArrayList zu entfernen. Sobald die Iteration abgeschlossen ist, verwenden Sie die Methode „removeAll()“, um alle angesammelten Elemente auf einmal aus der ursprünglichen Liste zu entfernen. Dieser Ansatz stellt sicher, dass während der Iteration keine Änderungen vorgenommen werden, und vermeidet die ConcurrentModificationException.
2. Verwenden Sie Iterator.remove()
Verwenden Sie die Methode „remove()“ des Iterators direkt. Diese Technik erfordert die Verwendung der herkömmlichen for-Schleife anstelle der erweiterten for-Schleife. Wenn Sie während der Iteration ein Element entfernen müssen, rufen Sie einfach „remove()“ für den aktuellen Iterator auf. Dieser Ansatz ändert die zugrunde liegende Liste während der Iteration, stellt jedoch die Konsistenz sicher und eliminiert gleichzeitige Änderungsprobleme.
Das obige ist der detaillierte Inhalt vonWie vermeide ich java.util.ConcurrentModificationException beim Entfernen von Elementen aus einer ArrayList während der Iteration?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!