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

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().
