„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie entferne ich Elemente sicher von einer Karte während der Iteration?

Wie entferne ich Elemente sicher von einer Karte während der Iteration?

Gepostet am 2025-03-25
Durchsuche:623

How to Safely Remove Elements from a Map While Iterating?

iterieren und Entfernen von Elementen aus einer Karte: Eine verbesserte Lösung

Wenn Sie versuchen, über die Tasten einer Karte zu iterieren und Elemente bedingt zu entfernen, können Sie eine Konfusmodifikation entfernen. Um dies anzugehen, wird empfohlen, eine neue Sammlung aus dem Schlüsselsatz der Karte zu erstellen und stattdessen darüber zu iterieren. Dieser Ansatz kann jedoch ineffizient und komplex sein.

Eine effektivere Lösung besteht darin, die REME () -Methode der Iterator -Schnittstelle zu verwenden. Auf diese Weise können Sie die Karte direkt ändern, während Sie über sie iteriert werden. Hier ist ein Beispiel:

Map map = new HashMap();
map.put("test", "test123");
map.put("test2", "test456");

for (Iterator> it = map.entrySet().iterator(); it.hasNext(); ) {
    Map.Entry entry = it.next();
    if (entry.getKey().equals("test")) {
        it.remove();
    }
}

Dieses Code -Beispiel zeigt, wie der Iterator in einer für die Schleife verwendet wird, um einen Eintrag aus der Karte zu entfernen. Durch die Nutzung der REME () -Methode können Sie den Inhalt der Karte effizient aktualisieren, während Sie die Einträge iteriert. Dieser Ansatz beseitigt die Notwendigkeit zusätzlicher Synchronisationsblöcke, so dass sie zu einer saubereren und effizienteren Lösung wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3