Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
677 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Iterator

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Iterator

n°1277140
flu1
Mess with best, die like other
Posté le 04-01-2006 à 19:43:57  profilanswer
 

Bonjour tout le monde, j'aimerais mieux comprendre deux choses à propos des iterator.
D'abord, lorsqu'je veux parcourir une linkedlist par exemple,je mets habituellement while (list.hasNext()){...}.
Cependant, je me demandais la différence avec while (list.next() != null) {...}. Pourriez vous me la dire?
Aussi, après reflexion, je me suis demandé la différence entre { les instructions de ma boucle while et ensuite, pour finir, list = list.next(); et {list = list.next(); et ensuite les instructions de ma boucle}. Pour moi, lorsqu'on choisit le deuxième cas, les instructions de la boucle ne sont pas appliquées au premier élément de ma liste...non? Merci.J'attends vos avis!

mood
Publicité
Posté le 04-01-2006 à 19:43:57  profilanswer
 

n°1277182
trevor
laissez la vie vous étonner...
Posté le 04-01-2006 à 20:45:48  profilanswer
 

sans vouloir te commander, un peu de mise en page dans ta question la rendrai plus lisible et plus compréhensible...

n°1277188
flu1
Mess with best, die like other
Posté le 04-01-2006 à 20:52:14  profilanswer
 

Biensur, désolé! Alors...
 
Bonjour tout le monde,
J'aimerais mieux comprendre deux choses à propos des iterator.  
D'abord, lorsque je veux parcourir une linkedlist par exemple,je mets habituellement  
 
Maliste current = liste;
while (current.hasNext()){mes instructions}.
 
Cependant, je me demandais la différence avec
 
Maliste current = liste;
while (current.next() != null) {mes instructions}
 
Aussi, après reflexion, je me suis demandé la différence entre
{ les instructions de ma boucle while et ensuite, pour finir, current= current.next();}
et  
{current= current.next(); et ensuite les instructions de ma boucle}
Je parle donc la de l'ordre de lecture (flow)  de Java 1.4 qui me pose un problème.
Pour moi, lorsqu'on choisit le deuxième cas, les instructions de la boucle ne sont pas appliquées au premier élément de ma liste...non? Merci.J'attends vos avis!Merci

n°1277202
trevor
laissez la vie vous étonner...
Posté le 04-01-2006 à 21:11:57  profilanswer
 

flu1 a écrit :

Aussi, après reflexion, je me suis demandé la différence entre
{ les instructions de ma boucle while et ensuite, pour finir, current= current.next();}
et  
{current= current.next(); et ensuite les instructions de ma boucle}
Je parle donc la de l'ordre de lecture (flow)  de Java 1.4 qui me pose un problème.
Pour moi, lorsqu'on choisit le deuxième cas, les instructions de la boucle ne sont pas appliquées au premier élément de ma liste...non? Merci.J'attends vos avis!Merci


 
en effet, tu dois passer par un 1er current.next() pour "activer" le passage, et donc mettre un current.next() juste en début de {instructions while} fait 2 passages successifs, donc le 1er n'est pas traité
d'un autre côté, si tu mets un test current.hasNext(), alors c'est bon...
 
finalement, tu peux faire:
- while (current.hasNext()) {current.next(); blabla}
OU
- while (current.next()!=null) {blabla; current.next();}
 
au choix, mais je trouve la 1ère soluce plus propre


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1277219
flu1
Mess with best, die like other
Posté le 04-01-2006 à 21:22:24  profilanswer
 

Merci bcp...c'est bien clair comme ca, et on a les memes gouts ;-). Je ne savais pas que la boucle while faisait deux passages successifs, je pensais qu'elle commencait les opérations à la première ligne de code, ce qui faisait donc qu'on passait au deuxième membre de ma liste, et on lui appliquait les instructions...mais si tu dis que la boucle fait deux passages...merci bcp!A bientot.

n°1277232
benou
Posté le 04-01-2006 à 21:44:47  profilanswer
 

trevor a écrit :

finalement, tu peux faire:
- while (current.hasNext()) {current.next(); blabla}
OU
- while (current.next()!=null) {blabla; current.next();}


 :heink:  
 
next() ca retourne pas nul en fin d'itération, hein, ca balance une NoSuchElementException

n°1277242
trevor
laissez la vie vous étonner...
Posté le 04-01-2006 à 21:57:55  profilanswer
 

benou a écrit :

:heink:  
 
next() ca retourne pas nul en fin d'itération, hein, ca balance une NoSuchElementException


 
ah ok. j'avais pas regardé pour les linkedList.
ca m'arrive d'utiliser le .next() pour d'autres trucs (ResultSet par ex)


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1277243
trevor
laissez la vie vous étonner...
Posté le 04-01-2006 à 21:58:59  profilanswer
 

flu1 a écrit :

Merci bcp...c'est bien clair comme ca, et on a les memes gouts ;-). Je ne savais pas que la boucle while faisait deux passages successifs, je pensais qu'elle commencait les opérations à la première ligne de code, ce qui faisait donc qu'on passait au deuxième membre de ma liste, et on lui appliquait les instructions...mais si tu dis que la boucle fait deux passages...merci bcp!A bientot.


 
je me suis mal exprimé. c'est juste que si tu colles un .next() dans le test, et direct après un .next() dans les instructions de ton while, forcément tu en zappes un (je pense que c'est ce que tu as compris)


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1277250
souk
Tourist
Posté le 04-01-2006 à 22:06:18  profilanswer
 

trevor a écrit :


- while (current.next()!=null) {blabla; current.next();}
 
au choix


 
euh on traite qu'un element sur deux avec ca la [:pingouino]
 
edit: ah tiens, ce tab etait ouvert depuis plus d'une heure sans que je le voie [:dawa]
desole du up je vais me cacher :o


Message édité par souk le 04-01-2006 à 22:07:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Iterator

 

Sujets relatifs
BufferedReader qui implémente IteratorBoucle for et list::iterator
STL - multimap - ou le mystère de l'iterator perdu (non résolu)Iterator
template iterator héritage, OK pour visual, Erreurs avec Gcc<iterator> : conception d'iterator, introduction aux traits
insertion dans une std::list à partir d'un reverse_iteratorIterator
fstream et iteratorIterator
Plus de sujets relatifs à : Iterator


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR