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

Développement Web en Java Discussion :

Utiliser Iterator à l'interieur d'un autre


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Utiliser Iterator à l'interieur d'un autre
    Bonjour tout le monde

    en fait, j'ai un petit souci avec les Iterator.

    J'ai une liste à trier selon trois critéres et donc, j'ai utilisé Iterator à l'interieur d'un autre sous cette façon:

    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
    18
    19
    20
    21
    22
    23
     
     
    while(itTmp.hasNext())
        		{ 
     
        			VoLigCde voLigCde1=(VoLigCde)itTmp.next();
     
                          ......  code....
     
        			Iterator it2=maListe.iterator();
     
        			while(it2.hasNext())
        			{
     
        				VoLigCde voLigCde2=(VoLigCde)it2.next();
     
        				if(maCondition){
     
        						newList.add(voLigCde2);
        						it2.remove();
     
        					}
        				}
    mais le probleme réside dans le fait que meme si ma Liste contient encore des elements, mon Iterator ne trouve pas de le deuxieme element,
    et me retourne It.hasNext() à false!!

    Prkoi????
    l'Iterator passe seulement

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Je suppose que tes 2 iterators parcours la même liste c'est bien ça ? Si c'est le cas alors c'est normal. Pour rappel en JAVA les objets sont gérés par référence. Donc tes 2 iterators sont les mêmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Iterator itTmp = maListe.iterator();
    Iterator it2=maListe.iterator();
    Soit tu fais une itération à l'ancienne avec un indice que tu incrémentes.
    Soit tu rends ton objet comparable.
    Je te conseille la deuxième solution c'est plus propre.
    Pour aider : http://java.developpez.com/faq/java/...rierCollection

    [Edit] J'ai un doute sur ce que j'ai dit à propos des iterators.(si qqun passe et connait la réponse) Je ne peux faire le test. Vérifie si les 2 pointeurs ont la même adresse mémoire ca confirmera ou pas.
    Est ce que dans ton algo tu enlèves des éléments ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    Bonjour
    Merci pr la réponse,
    et oui, j'utilise la même liste, et j'en enlève des éléments
    tu dois avoir raison, à propos de pointeurs.
    bon, j'essaye avec les comparable et je vous mets au courant.

Discussions similaires

  1. Utiliser Iterator à l'interieur d'un autre
    Par ptitdje dans le forum Général Java
    Réponses: 5
    Dernier message: 22/11/2011, 11h37
  2. utilisation iterator d'une liste à une autre
    Par padraig29 dans le forum Général Java
    Réponses: 2
    Dernier message: 21/05/2010, 18h09
  3. Réponses: 14
    Dernier message: 08/04/2008, 16h42
  4. Logic:iterate à l'interieur d'une autre
    Par tizilfin dans le forum Struts 1
    Réponses: 3
    Dernier message: 17/05/2007, 14h19
  5. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30

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