Danke, aber irgendwie dämmert es mir noch nicht...
Bei keiner Collection-Klasse taucht unter "All Implemented Interfaces:" das Interface "Iterator<E>" auf.
Wie soll dann eine Collection-Klasse ihre eigene Iterator-Klasse haben, die das Interface "Iterator<E>" implementiert?!
Wahrscheinlich stehe ich nur total daneben, bin aber für jede Erklärung sehr dankbar. ;-)
Gruß
Wang
EDIT:
Anscheinend stehe ich heute total daneben... Iterator<E> ist ja eine Schnittstelle, sprich die Methoden darin sind nicht implementiert, also sind auch hasNext() und next() nicht implementiert. Wie kann das hier unten dennoch funktionieren?
[code=Java]import java.util.*;
public class IterationAlt
{
public static void main (String[] args)
{
// Array definieren
int[] arr = {1, 2, 3, 4, 5 };
// Collection anlegen
List<Integer> coll = new ArrayList<Integer>();
// Schleife, um Arrayelemente in Collection zu kopieren
for (int i = 0; i < arr.length; ++i)
{
coll.add (new Integer (arr[i])); // Auto-Boxing
}
// Iterator erzeugen
Iterator<Integer> iter = coll.iterator();
// Schleife, um Elemente der Collection auszugeben
while (iter.hasNext()) // weitere Elemente?
{
Integer value = iter.next(); // Zugriff über Iterator
System.out.println ("Inhalt: " + value); // Auto-Unboxing
}
}
}[/code]