Como ordenar uma lista em Java?

A ordenação de listas em Java pode ser feita com Collections.sort(), Comparator e Stream API para organizar elementos de maneira eficiente.

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.

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
Foto de Rodrigo Farias
Contribuições de
Rodrigo Farias

Desenvolvedor Java focado em aplicações corporativas e microsserviços.

Mais sobre o autor
Compartilhe este tutorial: Como ordenar uma lista em Java

Compartilhe este tutorial

Continue aprendendo:

Como iterar sobre uma lista de forma eficiente em Java

A iteração eficiente sobre listas em Java pode ser feita usando for, forEach, Iterator e Streams para melhor desempenho.

Tutorial anterior

Como remover elementos duplicados de uma lista

A remoção de elementos duplicados em uma lista em Java pode ser feita com Set, Stream API e abordagens eficientes para garantir uma lista única.

Próximo tutorial