Como ordenar un HashMap en Java

Hola a todos, hoy os voy a explicar como podemos ordenar un HashMap en Java.

Si recordáis, un HashMap es una estructura dinámica, donde tenemos elementos asociados por clave y valor.

Algo normal que suele pasar, es que queramos ordenar los elementos.

El truco esta en usar la clase TreeMap, que es igual que HashMap pero esta ordena los elementos de forma automática, pero si queremos ordenarlo de una forma concreta se lo debemos indicar.

 

Vamos a ver un ejemplo:

Con esto tenemos nuestro mapa, pero como veis, las claves estan desordenadas.

Si lo quisieramos ordenar, usamos un TreeMap:

Fíjate que lo que hago realmente es pasar todo el contenido del HashMap al TreeMap.

Este es el resultado:

IMPORTANTE, HashMap a la hora de añadir puede llegar a hacer cosas raras, como ordenar de una forma u otra (cosa que no debería).

Hasta ahora hemos ordenado de forma alfabética, digamos la forma por defecto, pero, ¿si quiero ordenar de otra forma como lo hago?

 

Tenemos que indicarle al HashMap la forma y para ello, nos creamos una clase que implemente la clase  Comparator con el tipo de nuestra clave.

Para ordenar descendentemente, dentro de compareTo, como String ya tiene su compareTo, lo aprovechamos.

Para utilizarlo, creamos el TreeMap, pasándole una instancia de la clase que hemos creado:

 

Este es el resultado:

Aquí os dejo para descargar el ejemplo.

Os dejo el ejemplo completo:

También os dejo un video:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

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


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539