Auf Thema antworten

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]



Oben