Esta es una pregunta bastante frecuente en Java 8. Desde que los streams fueron agregados en Java 8, esto se ha convertido en una forma elegante y funcional.

Por ejemplo, considere que se tiene un Map de palabras con sus respectivas cuentas en un documento en particular como se muestra a continuación:

Ahora, si se tiene que ordenar esta lista por el valor en forma ascendente, es tan simple como el código a continuación:

En este caso se esta utilizando LinkedHashMap para almacenar el resultado ordenado de los elementos en el map resultante.

Las ventajas de este acercamiento es:

  1. Esto no modifica la data original de wordCounts, haciendolo más adecuado si se utiliza hilos.
  2. Es más fácil de leer.

Si se quiere ordenar el map en orden descendente, solo se tiene que especificar que la comparación será en orden reverso:

El programa completo para el ordenamiento en orden reverso es:

La salida de este programa es:

Se puede observar que el método sorted() toma a Comparator como argumento, haciendo posible ordenar el map con cualquier tipo de valor. Por ejemplo, el siguiente ejemplo se puede ordenar con el Comparator de la siguiente forma:


Este artículo se encuentra basado en How to Sort a Map by Value in Java 8.

Java 8: ¿Cómo ordernar un Map por valor?
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Etiquetado en:    

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook