miércoles, 15 de octubre de 2008

Cómo ordenar colecciones de objetos en java

Ordenar colecciones de objetos en java es muy sencillo, basta con hacer un cambio en la clase de los objetos que se van a agregar en la colección.
El cambio consiste en implementar la interface java.lang.Comparable, la cuál nos obliga a implementar únicamente el método compareTo(Object objeto2) de forma que devuelva un entero. El valor devuelto por este método debe ser el equivalente a this - objeto2.

Ejemplo:
public class Articulo implements Comparable {

private String nombre;
private Double valor;

public String getNombre() {
  return nombre;
}

public void setNombre(String nombre) {
  this.nombre = nombre;
}

public Double getValor() {
  return valor;
}

public void setValor(Double valor) {
  this.valor = valor;
}

public int compareTo(Object objeto2) {
  Articulo articulo2 = (Articulo) objeto2;
  return this.valor.compareTo(articulo2.getValor());
}

}
En este ejemplo se hace uso del método ya implementado por parte de la clase Double, pero la implementación la pudimos haber hecho de la manera en que más nos convenga.

Después, suponiendo que articulos es una colección de Articulos, podemos hacer:
Collections.sort(articulos);
Y nuestra lista de artículos quedará ordenada.

No hay comentarios.: