Iteratore: differenze tra le versioni

22 byte rimossi ,  11 anni fa
(LiveRC : Annullata la modifica di 192.135.19.147; ritorno alla versione di Marte81)
(→‎Java: upd)
===Java===
 
Introdotto nella versione 1.2 il supporto per gli iteratori è realizzato attraverso la classe parametrica ListIterator del pacchetto Java.util. Ogni classe che implementi l'interfaccia Iterable possiede infatti un set di metodi di supporto: un metodo listIterator() che crea l'iteratore, un metodo next() che lo fa avanzare ed un metodo hasNext() che verifica l'esistenza del nodo successivo ed opzionalmente un metodo remove().
Introdotta con lo standard Java 1.2, l'interfaccia java.util.Iterator permette di iterare su classi contenitore.
Ogni Iterator fornisce un metodo next() e un metodo hasNext(), e può opzionalmente supportare un metodo remove().
Gli iteratori vengono creati dal metodo iterator() fornito dalla corrispondente classe contenitore.
 
Il metodo next() avanzerà l'iteratore e poi renderà il valore puntato da quell'iteratore. Appena dopo essere stato creato,
un iteratore punta a un valore speciale che precede il primo elemento, cosicché il primo elemento si ottiene con la prima chiamata a next().
Per determinare se tutti gli elementi del contenitore sono stati visitati, si usa il metodo booleano hasNext(). Il seguente esempio mostra un semplice uso degli iteratori:
 
<source lang=java>
//crea una lista concatenata che sarà visitata grazie all'iteratore
Iterator it = list.iterator();
LinkedList<String> lista = new LinkedList<String>();
//supponiamo che la lista venga nel frattempo riempita
ListIterator<String> it = lista.listIterator();
//crea l'iteratore
while (it.hasNext()) {
//poiché il metodo next() restituisce un Object è possibile effettuare un casting
Object val = it.next();
System.out.printlnString temp = (valString) in.toStringnext());
System.out.println(temp);
}
</source>