So überwinden Sie die ConcurrentModificationException beim Durchlaufen und Entfernen von Elementen aus einer ArrayList
Das Durchlaufen einer ArrayList bei gleichzeitigem Entfernen von Elementen kann das berüchtigte Java auslösen. util.ConcurrentModificationException. Um dieses Problem anzugehen, sind mehrere Best Practices zu berücksichtigen.
Ein Ansatz besteht darin, eine separate Liste der Elemente zu erstellen, die Sie entfernen möchten. Fügen Sie diese Elemente während der Schleifeniteration zur sekundären Liste hinzu und rufen Sie nach Abschluss der Iteration die Methode originalList.removeAll(valuesToRemove) auf.
Alternativ können Sie die Methode „remove()“ direkt im Iterator verwenden. Beachten Sie, dass Sie bei dieser Technik die erweiterte for-Schleife meiden müssen. Um beispielsweise Zeichenfolgen mit einer Länge von mehr als 5 aus einer Liste zu entfernen:
List<String> list = new ArrayList<String>(); for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }
Das obige ist der detaillierte Inhalt vonWie vermeide ich ConcurrentModificationException beim Entfernen von Elementen aus einer ArrayList?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!