Umgekehrte Listen-Iteration
Mit einer sauberen for-each-Schleife in umgekehrter Reihenfolge über eine Liste iterieren.
Code-Vergleich
✕ Java 8
for (ListIterator<String> it =
list.listIterator(list.size());
it.hasPrevious(); ) {
String element = it.previous();
System.out.println(element);
}
✓ Java 21+
for (String element : list.reversed()) {
IO.println(element);
}
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Natürliche Syntax
Erweiterte for-Schleife statt des ausführlichen ListIterators.
Kein Kopieren
reversed() gibt eine Ansicht zurück — kein Performance-Overhead.
Konsistente API
Funktioniert einheitlich auf List, Deque und SortedSet.
Alter Ansatz
Manueller ListIterator
Moderner Ansatz
reversed()
Seit JDK
21
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Umgekehrte Listen-Iteration
Verfügbar
Weitgehend verfügbar seit JDK 21 LTS (Sept. 2023)
Wie es funktioniert
Die Methode reversed() von SequencedCollection gibt eine in umgekehrter Reihenfolge angeordnete Ansicht der Liste zurück. Diese Ansicht wird durch die ursprüngliche Liste gesichert, sodass kein Kopieren stattfindet. Die erweiterte for-Schleife macht die umgekehrte Iteration genauso lesbar wie die Vorwärts-Iteration.
Zugehörige Dokumentation