Cómo ordenar un mapa por valor en Java

Cómo ordenar un mapa por valor en Java

En Java, "Mapas"Son una poderosa estructura de datos utilizada para almacenar datos. Un mapa puede determinar fácilmente el valor apropiado para una clave determinada porque el mapa almacena datos en pares de valor clave, donde cada clave tiene un valor único correspondiente. Para recuperar estos valores de un mapa, se requiere una clave única; Sin embargo, los valores pueden ser los mismos para dos claves únicas.

Este artículo explicará el método de ordenar un mapa por valor en Java.

Cómo ordenar un mapa por valor en Java?

En Java, un mapa se puede ordenar por valor:

  • Usando el método sort ()
  • Usando el método Sorted ()

Ahora veremos cada uno de los métodos mencionados uno por uno!

Método 1: Ordene un mapa por valor en Java usando el método sort ()

El "clasificar()El método "es un método estático de la clase de colección Java. Este método solo se puede aplicar a listas como LinkedList, ArrayList, etc.

Esta sección demostrará el método para ordenar los valores de los elementos de mapa en orden ascendente y descendente.

Ejemplo 1: Ordene un mapa por valor en orden ascendente

En este ejemplo, ordenaremos los valores del mapa en orden ascendente utilizando el "Comparando Value ()" y el "clasificar()". Primero crearemos un mapa de tipo entero llamado "mapa" como sigue:

Mapa map = new HashMap ();

Luego, ponemos los valores en el mapa creado en forma de pares de valor clave:

mapa.poner (7, 10);
mapa.poner (1, 1000);
mapa.poner (5, 380);
mapa.poner (3, 700);

Imprima el mapa como un par de valores clave utilizando el "para cada" bucle. El bucle foreach solo se está utilizando para pasar a través de cada elemento en el mapa repetidamente. Hemos agregado un "expresión de lambda”(->) con el bucle para evitar múltiples líneas en el código fuente:

mapa.foreach ((k, v)-> sistema.afuera.println (k + ":" + v));

Luego, imprimiremos la siguiente declaración utilizando el "Sistema.afuera.println ()" método:

Sistema.afuera.println ("los valores después de clasificar:");

Para ordenar las entradas con el "clasificar()Método ", primero debemos crear una lista con el conjunto de entradas devueltas por el"EntrySet ()" método:

Lista> nlist = new ArrayList (mapa.entrySet ());

Ahora, llamaremos al método sort () pasando el "Comparando Value ()"Método como argumento para permitir la comparación de los valores de la entrada:

nlist.ordenar (entrada.compararbyValue ());

Por último, imprimiremos los valores ordenados del mapa utilizando el bucle foreach:

nlist.foreach (sistema.out :: println);

Nota: Al ejecutar el ejemplo anterior, debe importar las bibliotecas relacionadas con MAP, List, ArrayList, MapEntry, HashMap en la parte superior del código fuente.

La salida muestra que el mapa está ordenado por valor en orden ascendente:

Ejemplo 2: Ordene un mapa por valor en orden descendente

En este ejemplo, ordenaremos los valores de un mapa utilizando el "clasificar()"Método y"Comparando Value ()Método para ordenar los elementos del mapa en orden descendente. Aquí, primero, crearemos un mapa de tipo entero para almacenar valores int:

Mapa map = new HashMap ();

Luego, agregaremos los datos en un mapa en forma de pares de valor clave:

mapa.poner (7, 10);
mapa.poner (1, 100);
mapa.poner (5, 3800);
mapa.poner (3, 70);

Crearemos una lista para ordenar los elementos del mapa:

Lista> nlist = new ArrayList (mapa.entrySet ());

Aquí, llamaremos al "Comparando Value ()"Método al pasar un"orden inverso()"Método del"Comparador"Clase como argumento. Devolverá los valores del mapa en orden inverso:

nlist.ordenar (entrada.Comparando Value (Comparador.orden inverso());

Imprima los valores ordenados usando "para cada" bucle:

nlist.foreach (sistema.out :: println);

Como puede ver, los valores del mapa están ordenados en el orden descendente:

Veamos otro método para clasificar los elementos del mapa por valor.

Método 2: Ordene un mapa por valor en Java usando el método Sorted ()

El segundo enfoque es ordenar el mapa por valores utilizando la API de transmisión. La API de la corriente contiene una serie de métodos que se pueden usar para procesar una colección de objetos, como Stream () y Sorted ().

En esta sección, también imprimiremos el mapa por valores en orden ascendente y descendente.

Ejemplo 1: Ordene un mapa por valor en orden ascendente

Este ejemplo usará el mismo valor del mapa y los ordenará en orden ascendente utilizando el "ordenado ()Método de la API de transmisión. Utilizaremos el "arroyo()"Método para convertir el conjunto de entrada del mapa en una transmisión y luego ordene el mapa usando el"ordenado ()" método.

El "Comparando Value ()"El método del mapa proporciona el"ordenado ()Método con información adicional sobre el orden de clasificación natural. Por último, el "para cadaEl bucle se puede usar para acceder a todos los elementos y obtener los pares de valor clave uno por uno:

Arroyo> Ordena = mapa.EntrySet ().arroyo()
.ordenado (mapa.Entrada.compararbyValue ());

La salida muestra que el mapa está ordenado por valor en orden ascendente utilizando el método sorted ():

Ejemplo 2: Ordene un mapa por valor en orden descendente

Para ordenar el mapa por valor en orden descendente, usaremos el "Comparando Value ()"Método pasando"orden inverso()"Método como argumento para el"ordenado ()" método:

Arroyo> Ordena = mapa.EntrySet ().arroyo() .ordenado (mapa.Entrada.Comparando Value (Comparador.orden inverso()));

Como puede ver, el "ordenado ()El método "organizó el valor del mapa en orden descendente:

Hemos proporcionado toda la información esencial relacionada con la clasificación de un mapa por valor.

Conclusión

Para ordenar un mapa por valor en Java, use el "clasificar()Método "y el"ordenado ()Método "con el método ComparingByValue (). Estos métodos ordenan los valores en orden ascendente, mientras que para el orden descendente, debe llamar al método reverser () de la clase de comparación como un argumento de los métodos especificados. Este artículo cubrió varios métodos Java para ordenar un mapa por valor.