Ordenar una List (ArrayList, Vector, ...) o una tabla
Artículo por Club Developers · 20 mayo 2006
6460 vistas
Encontramos la solución en la clase java.util.Collections:
miLista será ordenada en orden ascendente.
Para ordenarla de forma descendente tendremos que hacer:
Atención: este ejemplo funciona sólo si los elementos de la lista son de tipo Comparable, como int, String, Date,... (ver la interfaz java.lang.Comparable). Si no fuera el caso (los elementos son objetos definidos por nosostros mismos), nuestra clase tendrá que implementar la interfaz java.lang.Comparable. Veamos un ejemplo:
Si queremos poder ordenar la lista de Coche según los caballos, tendremos que hacer la siguientes modificaciones a la clase:
Ahora podemos ordenar la lista de forma sencilla:
Si se trata de una tabla, el cósigo es el mismo, simplemente tendremos que usar la clase Arrays.
También tenemos la posibilidad de mezclar la lista de forma fácil gracias al método shuffle de Collections.
java
miLista será ordenada en orden ascendente.
Para ordenarla de forma descendente tendremos que hacer:
java
Atención: este ejemplo funciona sólo si los elementos de la lista son de tipo Comparable, como int, String, Date,... (ver la interfaz java.lang.Comparable). Si no fuera el caso (los elementos son objetos definidos por nosostros mismos), nuestra clase tendrá que implementar la interfaz java.lang.Comparable. Veamos un ejemplo:
java
Si queremos poder ordenar la lista de Coche según los caballos, tendremos que hacer la siguientes modificaciones a la clase:
java
// método a implementar /** * @param other other tiene que ser del tipo Coche */ int num1 = ((Coche) other).getNbCaballos(); int num2 = this.getNbCaballos(); if (num1 > num2) return -1; else if(num1 == num2) return 0; else return 1; } }
Ahora podemos ordenar la lista de forma sencilla:
java
Si se trata de una tabla, el cósigo es el mismo, simplemente tendremos que usar la clase Arrays.
java
También tenemos la posibilidad de mezclar la lista de forma fácil gracias al método shuffle de Collections.