|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
java.util.iterator
salve, mi spiegate bene ke fa iterator magari anke con un esempio
![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
Vector<String> vect = new Vector<String> (); vect.add ("aaa"); vect.add ("bbb"); vect.add ("ccc"); Iterator<String> iter = vect.iterator (); while (iter.hasNext ()) { String s = iter.next (); System.out.println (s); }
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
grazie x le risposte rapide andbin
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Ti permette di scorrere il contenuto di un insieme. Come dipende dall'insieme ma se sai fare un ciclo for su un array allora hai anche idea di cosa significhi "scorrere il contenuto": a partire da un certo elemento, il primo restituito da "nextElement", per ogni invocazione successiva di "nextElement" restituisci l'elemento successivo, finchè hai elementi da restituire.
Se prendi un array di N elementi, un Iterator per quell'array direbbe: la prima invocazione di nextElement restituisce l'elemento in posizione zero. la seconda invocazione di nextElement restituisce l'elemento in posizione uno. la terza, la quarta eccetera come sopra finchè l'elemento restituito da nextElement non sia quello di indice N - 1. A quel punto, l'invocazione di nextElement rilascia un errore (NoSuchElementException). Ti faccio un esempio semplice semplice (pià complicato non sarei probabilmente in grado di farlo ![]() Codice:
import java.util.*; public class ArrayIterator implements Iterator<Object>, Iterable<Object> { /** I dati su cui opera lo scorrimento */ private Object[] data; /** Questo serve per tenere traccia dello scorrimento */ private int cursor = 0; public ArrayIterator(Object[] data) { this.data = data; } /** True se il cursore di scorrimento non abbia raggiunto un valore tale da significare "hey, non ci sono più dati da scorrere!" */ public boolean hasNext() { return cursor < data.length; } /** Basandosi sul valore del cursore, restituisce il prossimo elemento o spara un'eccezione NoSuchElementException nel caso in cui l'iteratore abbia già raggiunto, per effetto di un'invocazione precedente di next(), l'ultimo elemento da scorrere */ public Object next() { if(!hasNext()) { throw new NoSuchElementException("Ahiahiahiahiahi!!!"); } return data[cursor++]; } /** Questo è un altro paio di maniche. remove serve per rimuovere dalla lista che questo iteratore scorre l'ultimo elemento restituito da next() che, per noi, sarebbe il componente in posizione "cursor - 1" */ public void remove() { throw new UnsupportedOperationException("Questo iteratore non supporta la rimozione"); } /** Questo è il metodo di Iterable e permette a questa classe di essere usata nel ciclo foreach */ public Iterator<Object> iterator() { return this; } } Codice:
public class Main { public static void main(String[] args) { Object[] data = { "A", "B", "C", "D", }; ArrayIterator iterator = new ArrayIterator(data); for(Object o : iterator) { System.out.println(o); } } } |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
![]() ![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2004
Città: Messina
Messaggi: 684
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
nn ho capito xkè il programma mi funziona così temp.getTime().getTime() e nn così temp.getTime() e basta
![]() Ultima modifica di bodomTerror : 20-11-2006 alle 18:15. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:02.