Pour chaque ... dans / for ( ... :
Pseudo-langage
POUR CHAQUE element DANS collection FAIRE
instructions (pouvant utiliser element)
FIN POUR CHAQUE
Java
for ( typeElement element : collection )
{
instructions
} // for:
Commentaires
- typeElement peut être un type objet ou un type primitif (si collection
contient des éléments du type enveloppe correspondant).
- element est un simple nom de variable.
- le type des éléments de collection doit être typeElement
(sauf dans le cas où typeElement est un type primitif, voir ci-dessus).
- Sans cette nouvelle boucle for, il faudrait utiliser un itérateur (voir l'interface
Iterator).
Auto -boxing / -unboxing
C'est la facilité que propose Java pour convertir automatiquement une valeur
d'un type primitif en objet du type enveloppe correspondant, et vice-versa.
Exemple :
1. ArrayList<Double> coll = new ArrayList<Double>();
2. double s = 0.0;
3. coll.add( 3.14 ); // auto-boxing : double --> Double
4. for ( double element : coll ) // auto-unboxing : Double --> double
5. s = s + element;
Commentaires
- Ligne 1 : ArrayList<double> serait interdit (les collections ne contiennent que des objets)
- Ligne 3 : sans auto-boxing, il faudrait écrire coll.add( new Double( 3.14 ) );
- Ligne 4 : on aurait pu écrire for ( Double element : coll ), MAIS
- Ligne 5 : il aurait fallu écrire
s = s + element.doubleValue()