Como ordenar uma lista em Java?
Ordenar listas em Java é essencial para manipulação eficiente de dados. Java fornece diversas abordagens para ordenar listas de maneira simples e eficiente.
1. Usando Collections.sort()
para Listas Simples
O método Collections.sort()
permite ordenar listas de elementos comparáveis.
import java.util.*;
public class TesteSort {
public static void main(String[] args) {
List<String> lista = new ArrayList<>(Arrays.asList("Banana", "Maçã", "Laranja", "Uva"));
Collections.sort(lista);
System.out.println(lista);
}
}
Saída esperada:
[Banana, Laranja, Maçã, Uva]
Nota: Para tipos numéricos, a ordenação é feita em ordem crescente automaticamente.
2. Ordenação Decrescente com Collections.sort()
e Comparator
Para ordenar em ordem decrescente, usamos um Comparator
personalizado.
Collections.sort(lista, Collections.reverseOrder());
3. Ordenando Objetos com Comparator
Se estivermos lidando com objetos personalizados, devemos definir um comparador.
import java.util.*;
class Produto {
String nome;
double preco;
public Produto(String nome, double preco) {
this.nome = nome;
this.preco = preco;
}
@Override
public String toString() {
return nome + " - R$" + preco;
}
}
public class TesteOrdenacao {
public static void main(String[] args) {
List<Produto> produtos = new ArrayList<>();
produtos.add(new Produto("Notebook", 3000.00));
produtos.add(new Produto("Celular", 1500.00));
produtos.add(new Produto("Tablet", 2000.00));
produtos.sort(Comparator.comparing(p -> p.preco));
produtos.forEach(System.out::println);
}
}
Saída esperada:
Celular - R$1500.0
Tablet - R$2000.0
Notebook - R$3000.0
4. Ordenação Usando Stream API
(Java 8+)
A Stream API
permite ordenar listas de maneira funcional e concisa.
lista.stream().sorted().forEach(System.out::println);
Para ordem decrescente:
lista.stream().sorted(Comparator.reverseOrder()).forEach(System.out::println);
5. Quando Usar Cada Método?
Método | Quando Usar? |
---|---|
Collections.sort() |
Para ordenar listas simples rapidamente |
Collections.reverseOrder() |
Para inverter a ordem de uma lista |
Comparator |
Para ordenar objetos personalizados |
Stream.sorted() |
Para ordenação funcional e mais legível |
Conclusão
Ordenar listas em Java pode ser feito de diferentes maneiras, dependendo da necessidade. Para listas simples, Collections.sort()
é suficiente. Para objetos complexos, Comparator
e Stream API
oferecem maior flexibilidade.
Por que a ordenação eficiente de listas é essencial no desenvolvimento Java?
Ordenar listas é essencial em aplicações Java que manipulam grandes volumes de dados. Em bancos de dados, ordenações eficientes evitam gargalos de desempenho. Frameworks como Spring utilizam comparadores para ordenar listas de resultados antes de exibi-los ao usuário. Dominar os diferentes métodos de ordenação em Java permite otimizar buscas e exibições em sistemas corporativos e aplicações web.
Algumas aplicações:
- Ordenação de produtos em lojas online
- Classificação de usuários em rankings
- Organização de relatórios e tabelas
- Filtragem e exibição de dados em dashboards
Dicas para quem está começando
- Use
Collections.sort()
para ordenar listas simples - Crie
Comparator
para objetos personalizados - Prefira
Stream API
para código mais legível - Experimente
reverseOrder()
para ordenação decrescente - Teste a performance da ordenação em listas grandes

Rodrigo Farias
Desenvolvedor Java focado em aplicações corporativas e microsserviços.
Mais sobre o autor