Chargement...

Itérer en Java

Créez un ArrayList<String> nommé tags, ajoutez oak puis pine, et parcourez la liste avec for (String t : tags) en affichant chaque mot. Compilez Lane.java et lancez java Lane. L’écran doit montrer deux lignes : oak, puis pine. Chaque passage de la boucle affiche une valeur. Parcourir chaque valeur de la collection, c’est ce que cette page enseigne.

Parcourez chaque valeur une fois

Sur la page HashSet, vous vérifiiez size et contains sans boucle. Sur la page for-each plus tôt dans le cours, vous parcouriez un tableau fixe. Cette page parcourt un ArrayList de la même façon for-each, puis montre un parcours indexé avec get. La collection grandit d’abord avec add. La boucle vient après le stockage des valeurs.
Ouvrez Lane.java. Gardez le nom de classe publique Lane pour qu’il corresponde au nom de fichier. Supprimez les démos restantes HashSet, contains, Bin, Desk et put/get de map. Supprimez aussi tout Scanner ou nextLine. Le programme ne doit pas attendre une saisie.
Près du haut, au-dessus de public class Lane, écrivez :
import java.util.ArrayList;
Dans main, créez la liste et ajoutez deux mots :
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
Puis écrivez l’en-tête et le corps du for-each :
for (String t : tags) { System.out.println(t); }
Les deux-points se placent entre le type-et-nom de l’élément et la collection. Chaque passage met t sur le mot suivant. N’écrivez pas de compteur dans cette première démo. Enregistrez avant de compiler.

Lane for-each ArrayList

java
import java.util.ArrayList;

public class Lane {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        for (String t : tags) {
            System.out.println(t);
        }
    }
}

Depuis le dossier qui contient Lane.java, lancez javac Lane.java. Quand parenthèses, accolades, chevrons, deux-points et points-virgules correspondent, javac n’écrit aucune ligne de son côté. Puis lancez java Lane — pas java Lane.java, ni java ArrayList. Laissez l’extension .java hors de la commande d’exécution.
Le programme doit afficher deux lignes et s’arrêter : oak, puis pine. Il ne doit pas vous demander de taper. Si le terminal attend une entrée clavier, un appel nextLine d’un exercice plus ancien reste dans un fichier. Supprimez cet appel et gardez la création, les deux lignes add et le for-each.
Parcourez l’exécution une fois. Java démarre à Lane.main. La liste contient oak puis pine. Le premier passage met t sur oak et affiche oak. Le second met t sur pine et affiche pine. Puis la boucle se termine. Rien d’autre ne doit s’afficher. Si vous ne voyez que 2, vous avez affiché size() au lieu de parcourir les valeurs. Si vous voyez une seule ligne [oak, pine], vous avez affiché l’objet liste entier au lieu de chaque élément — gardez le corps du for-each en println(t). Si vous voyez true ou leaf, une démo Bin ou Desk tourne encore — passez à java Lane.
Si javac dit qu’il ne trouve pas ArrayList, l’import manque ou se trouve après la ligne de classe. Placez import java.util.ArrayList; au-dessus de public class Lane. Si vous écrivez for (String t : tags) sans accolades puis plus d’une ligne de corps plus tard, gardez sur cette page le corps comme un seul println entre accolades pour que la forme reste claire. L’orthographe du nom de collection après les deux-points doit correspondre à la liste créée : tags, pas un slots restant de la page for-each sur tableau.

Parcours indexé avec get

Une deuxième démo parcourt la même liste avec un for compté et get. Vous voyez le chemin du numéro de case à côté du chemin for-each.

Lane indexed get walk

java
import java.util.ArrayList;

public class Lane {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        for (int i = 0; i < tags.size(); i++) {
            System.out.println(tags.get(i));
        }
    }
}

Compilez et lancez de la même façon. L’écran montre encore oak, puis pine. L’en-tête utilise i à partir de 0 tant que i < tags.size(). Chaque appel du corps tags.get(i) lit une case. C’est l’habitude get de list-methods dans une boucle. Préférez le fichier for-each comme premier chemin d’enseignement quand vous n’avez pas besoin du numéro d’index à l’écran. Gardez le fichier indexé pour prouver que les deux parcours affichent les mêmes deux lignes pour cette liste. Si vous démarrez i à 1 par erreur, le premier mot affiché serait pine et oak serait sauté — gardez i à 0 pour le parcours complet.
Ne vous fiez pas à l’ordre d’affichage HashSet pour l’écran de quiz de cette page. Les sets ne promettent pas oak avant pine. Les démos ArrayList gardent un ordre stable pour les deux lignes attendues. Restez avec ArrayList pour les fichiers d’enseignement afin que l’écran de quiz reste prévisible.

La taille seule n’est pas un parcours

Un troisième fichier montre l’habitude restante d’afficher seulement le compte. C’était utile sur la page HashSet, mais ce n’est pas itérer.

Lane size only not a walk

java
import java.util.ArrayList;

public class Lane {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        System.out.println(tags.size());
    }
}

Ce fichier affiche 2 — un nombre, pas les mots. Utilisez-le seulement comme contraste. Les fichiers conservés de la leçon d’itération affichent chaque valeur avec for-each ou avec get indexé. Ne soumettez pas le fichier size-only comme chemin de quiz pour l’écran à deux lignes.

Comparé au for-each sur tableaux et aux contrôles HashSet

Plus tôt, for-each parcourait des cases int[] ou String[]. Ici les deux-points fonctionnent encore, mais le nom à droite est un ArrayList. Sur la page HashSet, size et contains répondaient sans afficher chaque valeur. Cette page affiche chaque valeur. Une démo restante contains de Bin est une autre leçon. Pour cette page, gardez Lane avec le for-each qui affiche oak puis pine.
Quand d’anciens fichiers Bin.java restent à proximité, laissez-les ou supprimez-les seulement s’ils embrouillent quelle classe vous lancez. Lancez java Lane après avoir compilé le fichier de parcours de cette leçon.

Ce qui reste pour les wrappers

Cette page parcourt les valeurs de collection. La page suivante couvre les types wrapper comme Integer à côté de int primitif quand les collections ont besoin d’objets. Restez ici avec for-each et get indexé sur ArrayList. N’inventez pas de démos wrapper comme exigence sur cette page.

Avant les wrappers

Vous pouvez importer java.util.ArrayList, ajouter oak et pine, et afficher chaque mot avec for (String t : tags). Vous pouvez aussi parcourir avec for (int i = 0; i < tags.size(); i++) et tags.get(i). Compilez Lane.java et lancez java Lane. L’écran montre oak puis pine. La page suivante concerne les wrappers, où les types objet se tiennent à côté des primitifs pour le stockage en collection.
Gardez l’import. Gardez les deux add avant la boucle. Gardez for-each comme premier parcours d’enseignement. Ces habitudes sont le point de contrôle avant d’avancer. Quand les deux lignes s’affichent après le for-each, l’itération a fait son travail pour cette leçon et vous êtes prêt pour le sujet suivant.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut