IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Erreur de type ConcurrentModificationException


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut Erreur de type ConcurrentModificationException
    Salut à tous,

    J'ai une erreur de type java.util.ConcurrentModificationException au niveau du 'for (String pseudo : keys)'. Pouvez-vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    private void updateMap(List<Avatar> avatarList) {
    	Set<String> keys = map.keySet();
     
    	for (String pseudo : keys) {
    		boolean found = false;
     
    		for (Avatar avatar : avatarList) {
    			if (avatar.getPseudo().equals(pseudo)) {
    				found = true;
    			}
    		}
     
    		if (!found) {
    			map.remove(pseudo);
    		}
    	}
    }
    merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Tu ne peux pas effacer les éléments que tu parcours avec la boucle for(). (Et tu ne peux pas en ajouter ou en remplacer non plus, d'ailleurs.)

    Pour faire ça, il est nécessaire de passer par un Iterator :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Iterator<String> itr = keys.iterator();
    while(itr.hasNext()) {
      String pseudo = itr.next();
     
      // ...
     
      if(jeVeuxLenlever) {
        itr.remove(); // retire l'élément en cours de parcours.
      }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    merci

Discussions similaires

  1. [VB]erreur de type
    Par amel95140 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/01/2006, 14h51
  2. Réponses: 1
    Dernier message: 12/12/2005, 03h39
  3. [LG] Erreur de type incompatible dans assignment
    Par Tuxico dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2005, 21h06
  4. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 11h48
  5. [Agents services] Erreur de types imcompatibles
    Par ApollloCrid dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 14/04/2005, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo