Os enseñamos un pequeño truco de Java para ordenar una lista o colección de enteros(Integer) o cadenas(String) de manera sencilla.
La ordenación la haremos mediante un método del API de la clase ‘java.util.Collections‘. El método que vamos a emplear se llama ‘sort‘, que recibe como parámetro la lista de objetos que se van a ordenar:
1 public static <T extends Comparable<? super T>> void sort(List<T> list);
Vamos a explicar el funcionamiento del método ‘sort’ con unos ejemplos para ordenar listados de números y un listado de cadenas.
Ordenar una lista de enteros
En este ejemplo vamos a ordenar un listado de enteros utilizando el método ‘sort':
Java |copy code |?
01 public void ordenarEnteros(){02 03 // Creamos una lsta de enteros desordenados de ejemplo
04 List<Integer> lista = new ArrayList<Integer>();05 06 lista.add(1);07 lista.add(5);08 lista.add(4);09 lista.add(9);10 lista.add(8);11 lista.add(3);12 13 // Inicalmente lista tiene estos valores {1,5,4,9,8,3}
14 15 // sort no devuelve nada, realiza los cambios sobre la lista
16 Collections.sort(lista);17 18 // Después de ordenarla lista tiene {1,3,4,5,8,9}
19 20 }
Ordenar una lista de Strings
En este ejemplo ordenaremos mediante el método ‘sort’ una lista de String:
Java |copy code |?
01 public void ordenarCadenas(){02 03 List<String> lista = new ArrayList<String>();04 05 lista.add("zapato");06 lista.add("perro");07 lista.add("coche");08 lista.add("abrigo");09 lista.add("casa");10 11 // Inicalmente lista tiene estos valores {"zapato","perro","coche","abrigo","casa"}
12 13 // sort no devuelve nada, realiza los cambios sobre la lista
14 Collections.sort(lista);15 16 // Después de ordenar lista tiene {"abrigo","casa","coche","perro","zapato"}
17 18 }
Ordenación de listas en orden inverso, Collections.reverseOrder()
En los ejemplos anteriores la ordenación se ha realizado en orden ascendente. El método ‘sort’ también puede recibir como segundo parámetro un comparador que indique cómo se debe realizar la ordenación.
Si queremos realizarla en orden descendente, es decir, de mayor a menor, entonces deberemos indicarle este comparador ‘Collections.reverseOrder()‘ en la llamada al método sort:
Java |copy code |?
01 public void ordenarEnteros(){02 03 // Creamos una lsta de enteros desordenados de ejemplo
04 List<Integer> lista = new ArrayList<Integer>();05 06 lista.add(1);07 lista.add(5);08 lista.add(4);09 lista.add(9);10 lista.add(8);11 lista.add(3);12 13 // Inicalmente lista tiene estos valores {1,5,4,9,8,3}
14 15 // sort no devuelve nada, realiza los cambios sobre la lista
16 // INDICAMOS QUE ORDENE DE MAYOR A MENOR, DESCENDETE
17 Collections.sort(lista,Collections.reverseOrder() );18 19 // Después de ordenarla lista tiene {9,8,5,4,3,1}
20 21 }
Con estos ejemlos queda demostrado lo sencillo que es mediante la clase ‘java.util.Collections’ y el método ‘sort’ ordenar una lista de objetos.
Deja tu comentario