Iteracja po liście w odwrotnej kolejności
Iteruj po liście w odwrotnej kolejności za pomocą zwykłej pętli for-each.
Porównanie kodu
✕ 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);
}
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Naturalna składnia
Ulepszona pętla for zamiast rozwlekłego ListIteratora.
Bez kopiowania
reversed() zwraca widok — bez narzutu wydajnościowego.
Spójne API
Działa na List, Deque, SortedSet jednakowo.
Stare podejście
Ręczny ListIterator
Nowoczesne podejście
reversed()
Od JDK
21
Poziom trudności
Początkujący
Wsparcie JDK
Iteracja po liście w odwrotnej kolejności
Dostępne
Szeroko dostępne od JDK 21 LTS (wrzesień 2023)
Jak to działa
Metoda reversed() z SequencedCollection zwraca widok listy w odwróconej kolejności. Ten widok jest oparty na oryginalnej liście, więc nie dochodzi do kopiowania. Ulepszona pętla for sprawia, że iteracja wsteczna jest tak samo czytelna jak wprzód.
Powiązana dokumentacja
Dowód