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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 140
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 140
    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