Java Collection Iteratoren

Diese Collection Methode kann dazu verwendet werden, über alle Werte einer Collection zu iterieren: die Methode iterator, gibt ein Objekt vom Typ Iterator zurück.

Mit der Methode hasNext wird geprüft, ob es noch ein weiteres Element in der Collection gibt, next gibt das nächste Element zurück:

List<Book> books = …;
Iterator<Book> it = books.iterator();
while (it.hasNext){
    Book book = it.next();
    …
}

Seit Java 5 und der Einführung der for-each-Schleife ist es nur noch selten nötig, selbst mit dem Interator zu arbeiten. Ein wesentlicher Vorteil ist, dass es keine Sprachkonstrukte, sondern Objekte sind und können als solche in Feldern gespeichert und als Parameter an Methoden übergeben und aus Methoden zurückgegeben werden. Beispielsweise kann damit ein einzelnen Element ausgelesen werden und zu einem späteren Zeitpunkt an derselben Stelle fortgesetzt werden:

public boolean spieleHoerbuch(Iterator<Book> books, int zeit) {
    int gesamtzeit = 0;
    while (gesamtzeit < zeit) {
        if (books.hasNext()) {
            Book book = books.next();
            gesamtzeit += book.getLaenge();
            spieleBook(book);
        } else {
            return false;
        }
    }
    return books.hasNext();
}

In diesem Beispiel werden solange Hörbücher abgespielt, bis eine Gesamtzeit erreicht ist, dann wird das aktuelle Hörbuch zu ende gespielt. Wenn Sie die Methode das nächste Mal aktivieren, dann übergeben Sie denselben Iterator und es geht mit dem nächsten Hörbuch weiter.