Bonjour,

Etant à court d'arguments à présenter à mon équipe, je m'adresse à vous pour m'aider à dresser les points positifs et négatifs sur l'utilisation des boucles sur les iterators.

En gros, je pars du code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
List<String> amis = ...
Du coup, je peux parcourir la liste avec un while :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Iterator it = amis.iterator();
while(it.hasNext()) {
  String ami = it.next();
  // doFoo(ami)...
}
Ou avec un for :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
for(Iterator it = amis.iterator(); it.hasNext();) {
  String ami = it.next();
  // doFoo(ami)...
}
Le while semble mieux coller à la logique (à débattre) mais le for permet de limiter la portée de l'iterator.

Je précise que, dans certains cas, je suis bien obligé de travailler avec un iterator car la lib qu'on utilise nous renvoie directement un iterator et non une liste :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Iterator it = monService.foo();
Sinon j'aurais bien entendu fais un for comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
for(String ami : amis) {
  doFoo(ami)...
}
Alors toutes les bonnes remarques sont les bienvenues