# Iterator auf anfang setzen



## Andy (28. Nov 2004)

Hallo,

ich durchsuche eine ArrayList mit einem Iterator, wie kann ich dem Iterator z.B. sagen, das er sich nun wieder am Anfang der Liste befindet , ihn also wieder auf den Anfang setzen  :?:


----------



## Guest (28. Nov 2004)

Die Methode "Iterator interator()" ist in java.util.AbstractList implementiert und liefert 
eine Instanz von java.util.ListIterator. Wenn Du Dir die API dazu anschaust, dann wirst 
Du sehen, dass es dort keine Möglichkeit gibt, den Iterator zurück zu setzen.

Klartext: Einen neuen Iterator über arraylist.iterator() erstellen.


----------



## Guest (28. Nov 2004)

Ja aber ich hab auch etwas von reset() gelesen. Was hat es den damit auf sich ?


----------



## bygones (28. Nov 2004)

nein der Iterator an sich hat keinen methode sich selbst zu reseten... http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html

du kannst natürlich einen eigenen Iterator schreiben der diese Möglichkeit bietet !


----------



## Sky (28. Nov 2004)

Wollte dazu mal sagen, dass es eigentlich nicht der Konzeption eines Iterators entspricht ihn wieder auf den Anfang zu setzen. 
Der Iterator ist dazu da, um *einmal sequenziell* über einen Datencontainer zu gehen und auf jedes Element von Anfang bis Ende einmal zu zeigen.

Die Frage ist also: Warum willst Du einen Iterator zurücksetzen!? Ist diese Anforderung nicht anders Programm-Technisch umsetzen?

Nichts desto trotz kannst Du natürlich trotzdem deinen eigenen Iterator schreiben, der das kann...


----------



## Bleiglanz (29. Nov 2004)

wenn du das brauchst, dann nimm eine LinkedList und ggf. den dazugehörigen

public ListIterator listIterator(int index)

- aber auch der lässt sich nicht zurücksetzen, zu kannst nur zurückgehen. Das Zurücksetzen geht i.A. nicht, wegen der unklaren reihenfolge bei manchen Collections und thread-zeugs wie üblich...


----------

