PDA

View Full Version : Java2: problema sull'iterator


Scavenger
10-09-2004, 18:29
Salve, sono uno studente di ingegneria informatica,I anno. Sono alle prese con l'esame di programmazione orientata agli oggetti e c'è un dubbio che non riesco a chiarirmi riguardo il metodo iterator che restituisce un iterator sulla lista che invoca il metodo stesso. ora, se ho a che fare con liste facenti parte delle collections di java2 quali linked list, array list e set, per aprire un iteratore basta fare iterator it=(nome lista).iterator(); ed avere così a disposizione un iteratore it con cui poter scandire la lista. ma se ho a che fare con liste a puntatori espliciti e mappe, oltre ad aprire l'iteratore(per le mappe sui valori), devo anche implementare metodi proprio di iterator quali next(), hasNext() e remove??? qualsiasi consiglio è gradito.
grazie

kingv
10-09-2004, 20:30
non ho chiarissimo quello che chiedi.

qualuque classe implementi Collection deve implementare il metodo iterator(), nel quale verrà restituita un'istanza di una classe che implementa Iterator.

se implementi una tua Collection dovrai implementare anche un tuo Iterator (scritto ad hoc per "navigare" i membri della tua classe).

Scavenger
11-09-2004, 00:07
so esattamente che se sto usando una linked list, chiamando il metodo iterator() posso "navigare" sulla lista, con i suoi metodi quali next() hasNext() e remove(), ma se per esempio sto usando una lista concatenata a puntatori espliciti e mi viene chiesto di creare un metodo che restituisca un iteratore su questa lista, ad esempio: public Iterator iterator(){...}
oltre a fare una cosa del tipo return nomelista.iterator(), devo poi, essendo su una lista concatenata a puntatori espliciti, implementare anche i metodi di next(), hasNext() e remove(), adattandoli alla lista a puntatori espliciti, per poterli poi utilizzare sulla lista stessa?

anx721
11-09-2004, 02:34
Originariamente inviato da Scavenger
ma se per esempio sto usando una lista concatenata a puntatori espliciti

Ma cos'è una lista a puntatori espliciti??? In java mica ci sono i puntatori...ogni variabile istanziata con un oggetto altro non è che un riferimento ad un oggetto, ma con puntatori espliciti che intedi???

Scavenger
11-09-2004, 13:06
hai presente le linked list? Le liste a puntatori espliciti non sono altro che una versione "casereccia" delle linked list. è un pò la stessa cosa dei vettori e degli arraylist. se la cosa ti interessa posso mandarti qualche esempio su come costruirtela e lavorarci su.