Iterator.next() / JAVA

Résolu/Fermé
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 - 13 juin 2009 à 23:29
 hdhdhdh - 18 nov. 2010 à 19:24
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();                  
                }
               
A voir également:

12 réponses

C'est pas ce que fait le i.hasNext() qui te dit si il y a encore un élément après?
2
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
13 juin 2009 à 23:37
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
0
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....
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
13 juin 2009 à 23:42
Je vais essayer ça tout de suite.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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++)
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
13 juin 2009 à 23:52
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
0
De rien ;)
Bonne soirée
0
Par contre, tantot j'ai écrit:

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


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

while (i.hasNext())
{...}
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
14 juin 2009 à 00:00
OK.merci encore
0
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
0
dgdgsdgdsdg
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
14 juin 2009 à 00:25
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
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
14 juin 2009 à 01:05
wé ta encore raison,ça marche pas totalement avec le for.merci beaûcoup
0