So lösen Sie: Java-Sammlungsfehler: Ausnahme beim Durchlaufen der Sammlung
Einführung:
In der Java-Entwicklung sind Sammlungen sehr häufig verwendete Datenstrukturen zum Speichern und Bearbeiten eines Datensatzes. Bei der Verwendung von Sammlungen für Durchlaufvorgänge treten jedoch häufig Ausnahmen beim Durchlaufen von Sammlungen auf. Dieser Artikel beschreibt die Ursache und Lösung dieses Problems und stellt entsprechende Codebeispiele bereit.
1. Ursachen für Ausnahmen beim Durchlaufen von Sammlungen:
Wenn wir Iteratoren oder for-each-Schleifen zum Durchlaufen einer Sammlung verwenden und die Sammlung während des Durchquerungsprozesses geändert wird (z. B. Hinzufügen oder Löschen von Elementen), wird eine ConcurrentModificationException-Ausnahme ausgelöst. Dies liegt daran, dass der Iterator oder die for-each-Schleife während des Durchlaufvorgangs einen Zähler verwaltet, um zu erkennen, ob sich die Struktur der Sammlung geändert hat, und eine Ausnahme auslöst, sobald eine Änderung festgestellt wird.
2. Lösung:
List<String> list = new ArrayList<>(); // 添加元素 list.add("A"); list.add("B"); list.add("C"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if (item.equals("B")) { iterator.remove(); // 删除元素 } }
List<String> list = new ArrayList<>(); // 添加元素 list.add("A"); list.add("B"); list.add("C"); for (int i = list.size() - 1; i >= 0; i--) { String item = list.get(i); if (item.equals("B")) { list.remove(i); // 删除元素 } }
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>(); // 添加元素 map.put("A", 1); map.put("B", 2); map.put("C", 3); for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getValue() == 2) { map.remove(entry.getKey()); // 删除元素 } }
Schlussfolgerung:
Eine Sammlungsdurchlaufausnahme wird durch die Änderung der Sammlung während des Durchlaufvorgangs verursacht. Um dieses Problem zu lösen, können wir einen Iterator verwenden, um die Sammlung zu durchlaufen und die Methode „remove()“ zu verwenden, eine normale for-Schleife verwenden, um die Sammlung zu durchlaufen und die Methode „remove()“ von List zu verwenden, oder eine gleichzeitige Sammlungsklasse verwenden. Durch die Wahl der geeigneten Lösung kann das Problem von Ausnahmen beim Durchlaufen der Sammlung wirksam vermieden und der normale Betrieb des Programms sichergestellt werden.
Gesamtwortzahl: 437 Wörter
Das obige ist der detaillierte Inhalt vonSo beheben Sie: Java-Sammlungsfehler: Ausnahme beim Durchlaufen der Sammlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!