# ArrayList rückwärts durchgehen?



## magic_halli (23. Jan 2008)

Hi,

ich habe eine ArrayList 'alTest'. Normalerweise gehe ich so ein Teil mittels Iterator durch.
Ist es auch möglich, eine ArrayList von hinten her durchzugehen, also vom letzten zum ersten Eintrag? Das würde ja wohl mit nem Iterator nicht gehen?!

Danke und Gruß.


----------



## sliwalker (23. Jan 2008)

Hoi,

Collections.reverse(list) und dann iterieren.

greetz
SLi


----------



## mimo (23. Jan 2008)

Naja du kannst dir größe mit size() holen und die element mit get(int index) direkt ausgeben lassen.


----------



## SlaterB (23. Jan 2008)

hmm, interessant, ich kann nichts dazu in der API finden,
mein Vorschlag wäre bisher, eine Kopie der Liste anzulegen,
Collections.reverse() und dann normalen Iterator

(wenn nicht gar einfach per normale for-i-Schleife)


vielleicht kennt noch jemand was kürzeres


----------



## Marco13 (23. Jan 2008)

Wenn man rückwärts durch eine Liste gehen will, sollte man rückwärts durch die Liste gehen. (D.h. mit einer for-Schleife). Man sollte aber IMHO nicht vorwärts durch eine umgedrehte Kopie der Liste gehen. Hm.


----------



## maki (23. Jan 2008)

```
ListIterator it = alTest.listIterator(alTest.size()-1);

while(it.hasPrevious())
  Object element = it.previous();
```


----------



## magic_halli (23. Jan 2008)

Mh, also ich werde es mal mit for-Schleife probieren, da die 'Zeilennummer' für mich eine Rolle spielt. Wenn ich die Liste umdrehe und dann vorwärts durchgehe, sind die Zeilennummern nicht mehr analog der vorwärts durchgegangenen Liste...

EDIT: Hab maki´s Post zu spät entdeckt... Mh, das wäre doch was?!  :wink:


----------



## JavaFred (23. Jan 2008)

magic_halli hat gesagt.:
			
		

> Ist es auch möglich, eine ArrayList von hinten her durchzugehen




```
for (int i=list.size(); --i >= 0;)
{
    System.out.println(list.get(i));
}
```


----------



## Illuvatar (23. Jan 2008)

Vielleicht ist es auch sinnvoll, eine Deque zu verwenden


----------



## Wildcard (23. Jan 2008)

Der ListIterator ist hier in jedem Fall der for Schleife (und der irrwitzigen Kopie) vorzuziehen.


----------

