viernes, 6 de febrero de 2009

Ordenar colecciones

Para ordenar colecciones:
FORMA 1: Implementando la interfaz comparable en la clase
1) El objeto del que está compuesto la colección tiene que implementar la interfaz Comparable.
Ej:
public class Alumno implements Comparable{(...)}

2) Tiene que sobreescribir el método:compareTo(), teniendo en cuenta que lo que devuelve es el criterio de ordenación.
EJ:
public int compareTo(Alumno o) {
return dni.compareTo(o.dni);
}

3)Llamada al método sort() desde Collections en el código.
EJ:
List alumnos=new ArrayList();
alumnos.add(a1); (...)
Collections.sort(alumnos);

FORMA 2:Utilizando un objeto comparator
1) Nos creamos una clase nueva que tiene que implementar la interfaz Comparable.
EJ:
public class AlumnoNombreComparator implements Comparator {}

2) Esta clase tiene que sobreescribir el método:compareTo().
Este método recibe dos objetos del tipo a ordenar y devuelve un entero.
EJ: En este ejemplo se van a ordenar por el atributo nombre de la clase alumno.
public int compare(Alumno alumno1, Alumno alumno2) {
return alumno1.nombre.compareTo(alumno2.nombre);
}

3)Llamada al método sort() desde Collections en el código.
List alumnos=new ArrayList();
alumnos.add(a1); (...)
Collections.sort(alumnos, comparadorAlumnoPorNombre);

No hay comentarios:

Publicar un comentario