Posez votre question Signaler

Iterator.next() / JAVA [Résolu]

wolves'sbrother 223Messages postés 7 février 2009Date d'inscription 18 juillet 2011Dernière intervention - Dernière réponse le 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();                  
                }
               
Lire la suite 

Iterator.next() / JAVA »

Suggestions
13 réponses
Réponse
+1
moins plus
C'est pas ce que fait le i.hasNext() qui te dit si il y a encore un élément après?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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....
Ajouter un commentaire
Réponse
+0
moins plus
Je vais essayer ça tout de suite.
Ajouter un commentaire
Réponse
+0
moins plus
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++)
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
De rien ;)
Bonne soirée
Ajouter un commentaire
Réponse
+0
moins plus
Par contre, tantot j'ai écrit:

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


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

while (i.hasNext())
{...}
Ajouter un commentaire
Réponse
+0
moins plus
OK.merci encore
Ajouter un commentaire
Réponse
+0
moins plus
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
hdhdhdh - 18 nov. 2010 à 19:24
dgdgsdgdsdg
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
wé ta encore raison,ça marche pas totalement avec le for.merci beaûcoup
Ajouter un commentaire
Ce document intitulé « Iterator.next() / JAVA » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?