Iterator.next() / JAVA

Résolu
Bonjour,
J'utilise un Itertaor et j'amerais savoir comment on fais pour vérifier que Itertaor.next() existe
                            
               for ( Iterator i = lis.iterator();i.hasNext();)              
               {                         
                  String ar = desc.get("author" + id);  
                  Element au = (Element)i.next();                  
                }
               

12 réponses

  1. C'est pas ce que fait le i.hasNext() qui te dit si il y a encore un élément après?
    1. iterator.hashnext() pass à l'élement suivant,comme si on fait i++ pour un integer, et le iterator.next() renvoi la valeur de l'element suivant,et moi j'aimeré faire un test du genre
      if(Itertaor.next() != null)
      , mais ça ne marche pas comme ça,donc est ce qu(il ya un autre moyen pour le faire.
      Merci
      1. Bizarre ce que tu me dis... Moi dans mes codes java, je fais toujours:

        if (qquechose.hasnext())
        {
        String var = qquechose.next();
        }

        Et au moment où il n'y aura plus d'élément suivant, qquechose.hasnext() renverra false, et donc le programme s'arrêtera la....
        1. je rappelle la structure de la boucle for:

          for (variable avec valeur de départ; condition sur la variable (booléen) ; incrément)

          Dans ton code on voit bien que ton i.hasNext() ne se trouve pas dans la partie d'incrément mais bien dans le booléen qui dit si on continue ou pas.

          ex: for (int i = 0; i < 5; i++)
          1. wé,t'as raison,je vais devoir modifier ma boucle.
             Iterator i = lis.iterator();
             for ( i=0 ; i<6;i++)
                        
                        if (i.hasNext()){au = i.next();....}
                        else {....}
            

            ça devré marché.

            Merci beacoup et bnne soirée
            1. Par contre, tantot j'ai écrit:

              if (i.hasNext())
              {...}

              Je me suis trompé, il s'agissait plutôt de:

              while (i.hasNext())
              {...}
              1. Par contre désolé d'encore t'embêter mais ce que tu as écrit tantot n'est pas bon :s

                Iterator i = lis.iterator();
                for ( i=0 ; i<6;i++)

                if (i.hasNext()){au = i.next();....}
                else {....}

                En rentrant dans ta boucle for, tu mets le i à 0. Si ça ne provoque pas d'erreur, ça entrainera quand même que ton code s'exécutera pas normalement. Je mettrais plutot:

                Iterator i = lis.iterator();

                while (i.hasNext())
                {
                au = i.next();
                }

                Et ainsi il parcourera toute ta liste. Mais par contre il écrasera à chaque fois la valeur de la variable au par le nouvel élément
                1. dgdgsdgdsdg
              2. enfet je travaille avec JDOM.
                   List lis = book.getChildren("author"); 	       
                               Iterator iter = lis.iterator();

                Et la liste "lis" peut contenir juska 5 Elements,et kand par exempe elle ne contient que 2 Element,j'aimeré pouvoir ajouter les 3 autres,c'est pou ça que je préfére utiliser un for à la place du while
                1. wé ta encore raison,ça marche pas totalement avec le for.merci beaûcoup