Esta publicación discutirá varias formas de ordenar la lista en orden ascendente en Java. Suponga que la lista especificada es modificable pero no necesariamente redimensionable.

1. Usando Collections.sort() método

Collections la clase de utilidad proporciona una estática sort() método para clasificar la lista especificada en orden ascendente, según el orden natural de sus elementos.

Descargar  Ejecutar código

Resultado:

[2, 4, 5, 6, 8, 10]

 
Este método producirá una ordenación estable. Esto funcionará solo si todos los elementos de la lista implementan el Comparable interfaz y son mutuamente comparables, es decir, para cualquier par de elementos (a, b) en la lista, a.compareTo(b) no tira un ClassCastException.

2. Usando List.sort() método

Cada List implementación proporciona una estática sort() método que ordena la lista de acuerdo con el orden inducido por el especificado Comparator. Para que este método funcione, todos los elementos de la lista deben ser comparables entre sí mediante el comparador especificado.

Descargar  Ejecutar código

Resultado:

[2, 4, 5, 6, 8, 10]

 
Si el comparador especificado es nulo, todos los elementos de esta lista deben implementar el Comparable interfaz, y se utilizará el orden natural del elemento.

3. Usando Java 8

ordenar un List se hizo aún más fácil con la introducción de Stream en Java 8 y superior. La idea es obtener un flujo que consiste en los elementos de la lista, ordenarlos en orden natural usando el Stream.sorted() método y finalmente recopilar todos los elementos ordenados en una lista usando Stream.collect() con Collectors.toList(). Para que la ordenación funcione, todos los elementos de la lista deben ser comparables entre sí.

Descargar  Ejecutar código

Resultado:

[2, 4, 5, 6, 8, 10]

4. Ordenar la lista de objetos

Collections.sort(list) y list.sort(null) El método funcionará solo si todos los elementos de la lista implementan el Comparable interfaz.

Por ejemplo, el siguiente código crea una lista de User y desde User la clase no implementa Comparable, el programa arrojará un error de compilación al llamar Collections.sort() y un ClassCastException en List.sort(null).

Descargar Código

 
Hay varias formas de ordenar una lista de Objetos:

1. Hacer que el Objeto implemente el Comparable interfaz y anular la compareTo() método.

Descargar  Ejecutar código

Resultado:

[{Apple, 3}, {Google, 1}, {Microsoft, 2}]

 
2. Pasa un Comparator hacia Collections.sort() método, que define cómo se ordenarán los objetos en la lista.

Descargar  Ejecutar código

Resultado:

[{Google, 1}, {Microsoft, 2}, {Apple, 3}]

 
3. Pase la expresión lambda a Collections.sort() método que define el orden de ordenación de la lista. Esto funcionará solo en Java 8 y superior.

Descargar  Ejecutar código

Resultado:

[{Google, 1}, {Microsoft, 2}, {Apple, 3}]

Se trata de ordenar una lista en orden ascendente en Java.