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.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.add(a1); (...)
Collections.sort(alumnos, comparadorAlumnoPorNombre);