Cours d'Informatique
par Jacques LAFORGUE
Home
NFA 031
Présentation
Calendrier
Cours
Exemples
Exercices
Outils
Projets
Examens
NFA 032
Présentation
Calendrier
Cours
Exemples
Exercices
Projets
Examens
NFP 121
Présentation
Calendrier
Cours
Exemples
Exercices
Projets
Examens
NSY 102
Présentation
Calendrier Jour
Calendrier Soir
Cours
Exemples
Exercices
Examens
NSY 205
Présentation
Calendrier
Cours
Exemples
Exercices
Examens
ExempleCh04_08_DPIterator2
Retour
Télécharger
Exemple du DP Iterateur
La différence avec la version précédente, cet exemple utilise
une inner-classe pour créer l'itérateur
ExempleCh04_08.java
// Exemple du DP Iterateur // La différence avec la version précédente, cet exemple utilise // une inner-classe pour créer l'itérateur public class ExempleCh04_08 { public static void main(String[] args) { // Création de ma collection MyCollection c = new MyCollection(100); c.add("UN"); c.add("DEUX"); c.add("TROIS"); c.add("QUATRE"); // Itération sur la collection Iterateur it = c.getIterateur(); while (it.hasNext()) {System.out.println( (String)(it.next()) ); } System.out.println("--------"); c.add("CINQ"); // Deuxième itération sur la collection it = c.getIterateur(); while (it.hasNext()) {System.out.println( (String)(it.next()) ); } } } // Interface de création de l'itérateur interface Iterateurable { // Retourne un iterateur public Iterateur getIterateur(); } // Interface de l'itérateur interface Iterateur { // Retourne vrai si il existe encore un élément public boolean hasNext(); // Retourne l'élément courant et passe à l'élément suivant public Object next(); } // ====================================== // Exemple de l'implémentation d'une collection qui // implémente un itérateur // // Le choix de l'implémentation de la colleciton est // un tableau contenant les éléments et un entier // qui défini le nomnre d'élément ajouté dans le tableau. // Les éléments sont ajoutés de gauche à droite à partir de 0. // class MyCollection implements Iterateurable { private int max; // Taille physique du tableau private Object[] tab; // Tableau contenant les éléments private int nb; // Nombre des éléments // Constructeur // public MyCollection(int max) { this.max = max; this.tab = new Object[this.max]; this.nb = 0; } // Ajout d'un élément dans la collection // public void add(Object o) { if (nb!=max) { tab[nb]=o; nb++; } } // ---- Implémentation de la méthodes de l'interface BuildIterateur // // Cette méthode retourne un objet qui implémente l'interface // Iterateur et qui prend en entrée la collection // public Iterateur getIterateur() { return new MyIterateur(); } // Inner Classe de définition de notre itérateur // Implémente l'interface Iterateur // class MyIterateur implements Iterateur { private int indice; // L'indice courant // Constructeur // public MyIterateur() { this.indice = 0; // L'indice est à 0 au départ } // Retourne vrai si il existe encore un élément // public boolean hasNext() { return (this.indice < nb ); } // Retourne l'élément courant et passe à l'élément suivant // public Object next() { Object o = (Object)(tab[indice]); this.indice++; return o; } } }
compil.bat
mkdir bin del /f /s /q bin\*.class javac -d bin *.java pause
run.bat
cd bin java ExempleCh04_08 pause
Présentation
Calendrier
Cours
Exemples
Exercices
Outils
Projets
Examens
Présentation
Calendrier
Cours
Exemples
Exercices
Projets
Examens
Présentation
Calendrier
Cours
Exemples
Exercices
Projets
Examens
Présentation
Calendrier Jour
Calendrier Soir
Cours
Exemples
Exercices
Examens
Présentation
Calendrier
Cours
Exemples
Exercices
Examens
Cours d'Informatique
par Jacques LAFORGUE
Home
NFA 031
Présentation
Calendrier
Cours
Exemples
Exercices
Outils
Projets
Examens
NFA 032
Présentation
Calendrier
Cours
Exemples
Exercices
Projets
Examens
NFP 121
Présentation
Calendrier
Cours
Exemples
Exercices
Projets
Examens
NSY 102
Présentation
Calendrier Jour
Calendrier Soir
Cours
Exemples
Exercices
Examens
NSY 205
Présentation
Calendrier
Cours
Exemples
Exercices
Examens