Heim > Java > javaLernprogramm > Hauptteil

Wie entferne ich während der Iteration sicher Einträge aus einer Java-Map?

Linda Hamilton
Freigeben: 2024-11-12 19:32:02
Original
632 Leute haben es durchsucht

How to Safely Remove Entries from a Java Map While Iterating?

Über eine Karte iterieren und daraus entfernen

In Java kann das Iterieren über eine Karte und das Entfernen eines Eintrags während der Iteration eine ConcurrentModificationException auslösen. Um diese Ausnahme zu vermeiden, besteht eine gängige Lösung darin, den Schlüsselsatz in eine neue Datenstruktur, beispielsweise eine ArrayList, zu kopieren und stattdessen darüber zu iterieren.

Ein anderer Ansatz besteht darin, die Methode iterator() für den Eintrag zu verwenden Satz der Karte. Der von dieser Methode zurückgegebene Iterator kann zum Durchlaufen der Einträge verwendet werden, und seine Methode „remove()“ kann zum Entfernen des Eintrags aus der Karte verwendet werden.

Hier ist ein Beispiel für die Verwendung dieses Ansatzes:

Map<String, String> map = new HashMap<String, String>() {
  {
    put("test", "test123");
    put("test2", "test456");
  }
};

for (Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext(); ) {
  Map.Entry<String, String> entry = it.next();
  if (entry.getKey().equals("test")) {
    it.remove();
  }
}
Nach dem Login kopieren

Dieser Ansatz wird dem Kopieren des Schlüsselsatzes in eine neue Datenstruktur vorgezogen, da er effizienter ist und nicht die Erstellung eines neuen Objekts erfordert.

Das obige ist der detaillierte Inhalt vonWie entferne ich während der Iteration sicher Einträge aus einer Java-Map?. 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