Iteratoren
Ein Iterator dient dem Durchlaufen von Collections bzw., seit Version 5 von Java, von java.lang.Iterable. Die Idee hinter dem Iterator-Konzept ist die, dass von konkreten Datenstrukturen abstrahiert werden sollte - soll bspw. eine Schleife über alle Elemente einer Menge laufen, so ist es oftmals völlig egal, ob es sich bei der Menge um einen Vector, ein Set, einen Baum oder ähnliches handelt. Diese Abstraktion wird durch das zusammenspiel von Iterable und Iterator ermöglicht. Realisiert ist der Iterator in Java durch ein Interface, welches so abstrakt gehalten ist, dass es auf jede mögliche Collection angewendet werden kann und gleichzeitig so minimalistisch ist, dass es sich schnell für eine neue Datenstruktur implementieren lässt, denn java.util.Iterator verlangt lediglich die Implementation der drei Methoden
- boolean hasNext()
- Object next()
- void remove()
Sämliche Collections liefern über die Methode Iterator iterator() einen Iterator über ihre Elemente - dies ist im Interface java.util.Collection festgelegt. Das Beispielprogramm aus dem Seminar zeigt, wie ein Iterator für eine einfach verkettete Liste implementiert werden kann - implementiert die Klasse, die den Iterator liefert, zusätzlich das Interface Iterable (was keinen weiteren Aufwand bedeuten sollte), so lassen sich Instanzen dieser Klasse auch mit foreach-Schleifen verwenden.