Iteração reversa de listas
Itere sobre uma lista em ordem reversa com um for-each limpo.
Comparação de Código
✕ 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);
}
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Sintaxe natural
For-each aprimorado em vez de ListIterator verboso.
Sem cópia
reversed() retorna uma visão — sem overhead de desempenho.
API consistente
Funciona uniformemente em List, Deque e SortedSet.
Abordagem Antiga
ListIterator manual
Abordagem Moderna
reversed()
Desde o JDK
21
Dificuldade
Iniciante
Suporte JDK
Iteração reversa de listas
Disponível
Amplamente disponível desde o JDK 21 LTS (setembro de 2023)
Como funciona
O método reversed() de SequencedCollection retorna uma visão em ordem inversa da lista. Essa visão é apoiada pela lista original, então nenhuma cópia é feita. A sintaxe do for aprimorado torna a iteração reversa tão legível quanto a iteração direta.
Documentação Relacionada