Maison > Java > javaDidacticiel > le corps du texte

Comment supprimer en toute sécurité des entrées d'une carte simultanée lors d'une itération ?

Patricia Arquette
Libérer: 2024-11-12 10:21:02
original
323 Les gens l'ont consulté

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

Itération et suppression d'une carte simultanée

Lors de la modification d'une carte pendant l'itération, il est crucial d'éviter les erreurs ConcurrentModificationException. L'approche classique consistant à utiliser for (Object key : map.keySet()) échoue car des modifications de carte peuvent se produire pendant la boucle.

Une solution de contournement courante consiste à copier l'ensemble de clés dans une nouvelle collection, comme indiqué dans for (Clé d'objet : new ArrayList(map.keySet())). Cependant, cette approche crée une copie inutile.

Une meilleure solution consiste à utiliser un itérateur pour supprimer les entrées de la carte. Voici un exemple :

Map<String, String> map = new HashMap<>();
map.put("test", "test123");
map.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();
    }
}
Copier après la connexion

Ce code utilise un itérateur pour supprimer en toute sécurité des entrées de la carte. La méthode remove() de l'itérateur supprime l'entrée actuelle, permettant des modifications de carte sûres et efficaces pendant l'itération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal