Blog
Tutoriales

Ordenando Lista de Objetos en Java

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

SipPulse - Equipo Técnico1 de marzo de 20132 min de lectura
Compartir
Ordenando Lista de Objetos en Java

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

#Java#programación#Collections

Artículos Relacionados