Ordenando Lista de Objetos en Java
Aprenda a ordenar listas de objetos en Java utilizando la interfaz Comparable y el Collections Framework.

Ordenando Lista de Objetos en Java
Java proporciona enfoques elegantes para la ordenación a través de su Collections Framework — una API robusta que incluye estructuras de datos avanzadas como ArrayList y LinkedList.
Ejemplo básico con Strings
El método sort del Collections Framework simplifica significativamente el proceso de ordenación:
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
El método sort determina la ordenación a través del método compareTo de la interfaz Comparable, que retorna cero para objetos iguales, negativo para objetos menores y positivo para mayores.
Ordenación de objetos personalizados
Para clases personalizadas, implemente la interfaz 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 y setters...
}
Esta lógica ordena por cilindrada en orden decreciente y luego por color alfabéticamente para cilindradas iguales.
Clases Built-in con Comparable
Muchas clases Java ya implementan Comparable: String, BigDecimal, BigInteger, Byte, Character, Date, Double, Float, Integer, Long, Short y URI. Estas pueden ser ordenadas directamente usando Collections.sort().
