Blog
Tutoriais

Ordenando Lista de Objetos em Java

Aprenda a ordenar listas de objetos em Java utilizando a interface Comparable e o Collections Framework.

SipPulse - Equipe Técnica1 de março de 20132 min de leitura
Compartilhar
Ordenando Lista de Objetos em Java

Ordenando Lista de Objetos em Java

Java fornece abordagens elegantes para ordenação através de seu Collections Framework — uma API robusta que inclui estruturas de dados avançadas como ArrayList e LinkedList.

Exemplo básico com Strings

O método sort do Collections Framework simplifica o processo de ordenação significativamente:

List<String> lista = new ArrayList<String>();
lista.add("fogo");
lista.add("agua");
lista.add("vento");
lista.add("terra");

Collections.sort(lista);

for(String i : lista){
    System.out.println(i);
}
// Resultado: agua, fogo, terra, vento

O método sort determina a ordenação através do método compareTo da interface Comparable, que retorna zero para objetos iguais, negativo para objetos menores e positivo para maiores.

Ordenação de objetos customizados

Para classes customizadas, implemente a interface Comparable:

public class Carro implements Comparable<Carro> {
    private String cor;
    private int cilindrada;

    public Carro(String cor, int cilindrada) {
        this.cor = cor;
        this.cilindrada = cilindrada;
    }

    public int compareTo(Carro carro) {
        if(this.cilindrada > carro.cilindrada) return -1;
        else if(this.cilindrada < carro.cilindrada) return 1;
        return this.getCor().compareToIgnoreCase(carro.getCor());
    }
    // getters e setters...
}

Esta lógica ordena por cilindrada em ordem decrescente e, em seguida, por cor alfabeticamente para cilindradas iguais.

Classes Built-in com Comparable

Muitas classes Java já implementam Comparable: String, BigDecimal, BigInteger, Byte, Character, Date, Double, Float, Integer, Long, Short e URI. Estas podem ser ordenadas diretamente usando Collections.sort().

#Java#programação#Collections

Artigos Relacionados