Ein Iterator ist eine Implementierung des Interface Iterable?

cheat.008

Aktives Mitglied
Ein Iterator ist eine Implementierung des Interface Iterable?

Ist dies richtig?

Meiner Meinung nach nicht, da ein Iterator eine separates Interface darstellt und keine Implementierung.
 
java.util.Iterator und java.lang.Iterable sind zwei unterschiedliche Interfaces und keines von beiden erweitern (i.e. sind Subtypen) des jeweils andere.
Es ist nur so, dass java.lang.Iterable eine Methode `iterator` hat, die ein java.util.Iterator zurückliefert.
Und man kann eine Instanz einer Klasse, die java.lang.Iterable implementiert, seit Java 1.5 als zu iterierendes Objekt in einer "Enhanced For-Loop" verwenden, da der Java Compiler hier automatisch einen Aufruf an java.lang.Iterable.iterator() generiert und den zurückgelieferten Iterator benutzt, um die Iteration der Schleife zu realisieren.
 

Zurück
Oben