OVH Cloud OVH Cloud

Iterator

3 réponses
Avatar
Sylvestre
Hello

Après avoir insérer des objets dans une linked list, je
cherche à parcourir cette liste et accéder aux champs des
objets inserés, comment on fait ?
en déclarant un objet "listIterator" de ma liste, la méthode next renvoie
un objet générique qui ne donne pas accès aux membres des objets inserés...


Merci

3 réponses

Avatar
Bruno
dans l'article btjv6s$97h$, Sylvestre à
a écrit le 08/01/2004 17:06 :

Hello

Après avoir insérer des objets dans une linked list, je
cherche à parcourir cette liste et accéder aux champs des
objets inserés, comment on fait ?
en déclarant un objet "listIterator" de ma liste, la méthode next renvoie
un objet générique qui ne donne pas accès aux membres des objets inserés...


Merci


dans le genre

linkedList list;
.../...

ListIterator iter = new list.listIterator(0);
while(iter.hasnext()) {
object obj = (object)iter.next() //object = type dans la liste c'est un
cast
.../...;
}


--
Bruno Causse
http://perso.wanadoo.fr/othello

Avatar
Bruno
dans l'article BC23428E.11535%, Bruno à
a écrit le 08/01/2004 17:23 :


linkedList list;
.../...

ListIterator iter = new list.listIterator(0);
while(iter.hasnext()) {
object obj = (object)iter.next() //object = type dans la liste c'est un
cast
.../...;
}



je ne suis pas tres clair :(

tu stockes dans la liste des objects (classe mère de tout object) mais il
conserve malgré tout leurs spécificités (heureusement) quant tu récupères de
la liste un object tu dois le "caster" = lui repréciser son type pour
acceder aux variables (normalement tu devrais avoir des accesseurs) et aux
méthodes

--
Bruno Causse
http://perso.wanadoo.fr/othello

Avatar
TestMan
Pour info,
Avec le Java 1.5 on écrira directement :

for(Truc element : list){
element.pipo();
}


Top non ;-)
Plus besoin de transtyper (caster), bien sur à condition que la List
contiennent des éléments au minimum du type Truc, par exemple définit
comme :

List<Truc> list = new Vector<Truc>();


TM

Bruno wrote:
dans l'article BC23428E.11535%, Bruno à
a écrit le 08/01/2004 17:23 :

linkedList list;
.../...

ListIterator iter = new list.listIterator(0);
while(iter.hasnext()) {
object obj = (object)iter.next() //object = type dans la liste c'est un
cast
.../...;
}


je ne suis pas tres clair :(

tu stockes dans la liste des objects (classe mère de tout object) mais il
conserve malgré tout leurs spécificités (heureusement) quant tu récupères de
la liste un object tu dois le "caster" = lui repréciser son type pour
acceder aux variables (normalement tu devrais avoir des accesseurs) et aux
méthodes