Maison > Java > javaDidacticiel > le corps du texte

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

Linda Hamilton
Libérer: 2024-11-12 19:32:02
original
621 Les gens l'ont consulté

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

Itérer et supprimer d'une carte

En Java, itérer sur une carte et supprimer une entrée pendant l'itération peut lancer une ConcurrentModificationException. Pour éviter cette exception, une solution courante consiste à copier l'ensemble de clés dans une nouvelle structure de données, telle qu'une ArrayList, et à parcourir celle-ci à la place.

Une autre approche consiste à utiliser la méthode iterator() sur l'entrée. ensemble de la carte. L'itérateur renvoyé par cette méthode peut être utilisé pour parcourir les entrées, et sa méthode Remove() peut être utilisée pour supprimer l'entrée de la carte.

Voici un exemple d'utilisation de cette approche :

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();
  }
}
Copier après la connexion

Cette approche est préférable à la copie de l'ensemble de clés dans une nouvelle structure de données car elle est plus efficace et ne nécessite pas la création d'un nouvel objet.

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