Au niveau des nouveaux concepts, il faudra désormais faire avec la
boucle d'itération interne.
Jusqu'à présent on avait affaire à des boucles d'itérations
externe, soit en utilisant directement un Iterator, soit en utilisant le for-étendus :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| List<String> list = ...
// Itération externe utilisant un Iterator :
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String value = iter.next();
// traitement sur value
}
// Itération externe utilisant un for-étendu :
for (String value : list) {
// traitement sur value
} |
Par "externe" il est sous-entendu que l'implémentation de la liste n'a aucun moyen de contrôler le déroulement de cette dernière.
Désormais, l'interface
Iterable est doté d'une nouvelle méthode
forEach() permettant de parcourir les éléments de manière "interne", ce qui nous donne :
1 2 3
| list.forEach( (value) -> {
// traitement sur value
}); |
La principale différence vient du fait que l'on n'effectue pas directement la boucle. On se contente d'appeler la méthode
forEach() en lui passant une expression lambda contenant notre traitement.
Partager