IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Iterator et iterator()


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut Iterator et iterator()
    Bonjour,
    je cherche de la doc sur Iterator, mais je ne trouve pas bcp de trucs utiles.
    est ce que vous savez où je peux regarder pour comprendre comment ça marche, ou mieux est ce que vous pouvez m'expliquer ?

    De ce que j'ai compris:

    Iterator est une interface, ie toutes ces méthodes sont non implémentées.
    iterator(), permet de parcourir tous les éléments de Iterator et de faire des opérations dessus.

    Mais je ne sais pas comment on "donne" ces éléments à Iterator.

    C'est un peu brouillon, je suis dsl.
    J'ai déjà regardé à plusieurs endroits, mais ça m'a plus embrouillé qu'autre chose.

    Merci à ceux qui m'accorderont de leur temps.

  2. #2
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    Bonjour,

    Por ce que j'en sais la metode iterator() return un Iterateur sur la class en question.
    En general les class iterable sont les liste, map ect.
    Donc L'Iterateur obtenu via la methode iterator() utilise directement les donner contenu dans la class (la list, la map, ect).
    De plus en general la class Iterateur et une class intern a la class iterable.

    Voila j'espere que ca poura t'aider

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Je suis plutôt d'accord avec ce que tu dis, mais pratiquement je vois pas comment faire.

    Exemple,

    Je crée une class Cellule avec une valeur et une celluleSuivante.
    Je crée une class Liste avec une premièreCellule

    Maintenant, je veux créer Iterator.

    Je voudrais lui dire que la collection sur laquelle il va travailler est une Liste<Cellule>, mais je sais pas comment faire.

    ensuite je voudrais utiliser la méthode iterator() pour faire une opération, par exemple modifierValeur() sur tous les éléments de la collection d'Iterator.

    Pour cela il faut que j'écrive une méthode mdifierValeur() qui a modifier la valeur de la cellule courante, ensuite la structure même d'iterator fait, en fin je crois, que cette méthode est appelée sur tous les membres de ma collection. Cependant, je ne sais pas comment initialiser le lancement de cette méthode .

    Enfin je ne sais pas ce qu'il faut ré implémenter, et ce qui est déjà fait....

    Voilà, en gros j'ai pas mal de pistes mais je ne maîtrise rien...

    Merci qd même...

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    En gros Iterator en une interface ce qui signifie que tout les objet de type Iterator ont les même méthodes.
    Toutes les Collections ont une méthode iterator() qui permet d'obtenir un objet de type Iterator qui va parcourir la collection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList <Objet> liste = new ArrayList<Objet>();
    Iterator <Objet> it = liste.iterator();

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    ArrayList et vector sont des collections ?
    (non pas que sois étonné, mas on ne me l'avait jammais présenté sous cet angle...)

    Dans ce cas là, comme tu le dis, c'est déjà fait, mais comment je fais pour faire ma propre structure de donnée et que Iterator marche bien ?

    Je m'explique :

    Je ne sais pas ce que tu en penses, mais si j'ai juste envie de stocker des cellules dans une liste simplement chainée avec trois pauvres méthodes, est ce que ça vaut la peine de faire appel à ArrayList, qui est certes bien pratique, mais qui est quand même un sacré mastodonte...

    C'est pas que j'essaye de ménager la mémoire de mon pc, mais d'un point de vue scolaire je crois que c'est pas trop apprécié, je connais un pote qui a utilisé des ArrayList pour stocker des petites valeurs comme ici, et ses prof étaient mort de rire (la grosse blague de geek "il utilise des ArrayList AHAHAHA

    Donc en gros, si je vais faire ma propre petite liste, comment je fais pour lui dire que c'est une collection ?

    (vu que c'est apparemment comme cela qu'il faut faire)

    Merci bcp pour ta réponse je crois que ça va bientôt être bon ?

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Déjà ArrayList n'est pas un mastodonte comme on semble te l'avoir dit. Tu peux très bien l'utiliser pour stocker 3 valeur.
    Par contre si pour des raisons scolaires tu as besoin d'écrire ta propre liste (par exemple MaListe) chainée tu peux le faire. Tu pourra ensuite écrire un classe qui implémentera l'interface Iterator (IteratorDeMaListe) qui fera le parcours d'une MaListe. Ensuite dans ta classe MaListe tu écrira une méthode iterator qui retournera une instance de IteratorDeMaListe.
    Si tu veux en plus que MaListe soit une collection il faut lui faire implémenter l'interface Collection et implémenter toutes les méthodes.

Discussions similaires

  1. remplacer string::iterator par iterator
    Par jfjobidon dans le forum Débuter
    Réponses: 2
    Dernier message: 23/04/2015, 16h50
  2. Iteration VS recursivité
    Par yacinechaouche dans le forum C
    Réponses: 40
    Dernier message: 16/11/2012, 11h52
  3. Test d'une String dans un Iterator ( <s:iterator, <s:if )
    Par chezwam56 dans le forum Struts 2
    Réponses: 11
    Dernier message: 23/08/2011, 16h31
  4. map<>::const_iterator iter et iter++
    Par neismarspra dans le forum C++
    Réponses: 7
    Dernier message: 18/09/2008, 12h34
  5. vInt::iterator
    Par Monstros Velu dans le forum C++
    Réponses: 19
    Dernier message: 05/04/2003, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo