Iterator

naq2 Messages postés 59 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 23 décembre 2006 - 14 mai 2004 à 03:07
naq2 Messages postés 59 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 23 décembre 2006 - 14 mai 2004 à 12:13
Bonjour,

Une question simple: J'ai besoin d'écrire un Iterator, comment si prendre? En fait, plutôt, à quoi correspond un Iterator.

Typiquement, j'écris une liste chaînée et j'ai une méthode qui renvoi un Iterator.

A quoi correspond un Iterator? A un tableau qui sauvegarde la liste de mes éléments? Je vois pas trop.

Merci pour votre aide.

3 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
14 mai 2004 à 07:37
Salut,

un Iterator est un curseur sur une collection. Il donne l'objet courant et permet de savoir si il y a encore des objets.
L'implémentation est libre mais doit respecter le contrat défini par l'interface Iterator. Pour t'aider regarde les sources sur les implémentation des Iterator.
Ton implémentation peut utiliser un tableau qui contient la copie des éléments ou faire le parcours directement de ta liste (il avance automatiquement à chaque appel de next()) ou autre ...
Un point à faire attention est comment gérer les accès concurrents : par ex tu parcours ta liste avec ton itérateur et un autre thread modifie ta liste. Qu'est ce qui se passe ? Les itérateurs plantent aussitot (comportement fail fast). Là à toi de décider ce que tu veux faire.
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
14 mai 2004 à 11:37
:big) Neodante :big)

Je complèterais en disant que l'Iterator est une vraie merveille pour parcourir n'importe quelle Collection (2méthodes -> add(), iterator()) que ce soit des LinkedList ou autre HashTable ... ce qui fait que tu peux prendre les objets depuis n'importe quelle collection et les lire sans connaitre le fonctionnement interne de ta collection ...
@+

[Responsable www.neogamedev.com]
0
naq2 Messages postés 59 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 23 décembre 2006
14 mai 2004 à 12:13
Merci les gens! :)

A vous deux, ... rien ne résiste! :)
0
Rejoignez-nous