Programa Java para ordenar LinkedHashMap por valores

LinkedHashMap es como HashMap con una característica adicional de mantener un orden de elementos insertados en él. HashMap proporcionó la ventaja de una inserción, búsqueda y eliminación rápidas, pero nunca mantuvo el seguimiento y el orden de inserción que proporciona LinkedHashMap donde se puede acceder a los elementos en su orden de inserción. 

Por lo tanto, LinkedHashMap es la clase secundaria de HashMap. Ahora, en LinkedHashMap se debe mantener el orden de inserción, así que convierta LinkedHashMap en una lista y luego imprima la lista en la que los valores están ordenados.

Ilustración:

Entrada: LinkedHashMap = {{“for”, 2}, {“Geek”, 3}, {“Geeks”, 1}}

Producción:  

Clave -> Geeks: valor -> 1

Clave -> para: valor -> 2

Clave -> Geek: valor ->3 

Procedimiento:

  1. Cree un objeto de LinkedHashMap Class donde el objeto se declara de tipo Integer y String.
  2. Agregue elementos al objeto anterior creado del mapa usando el método put(). Los elementos aquí son pares clave-valor.
  3. Recupere todas las entradas del mapa y conviértalas en una lista usando el método entrySet() .
  4. Ordene el valor de la lista usando el comparador personalizado.
  5. Ahora use el método de clasificación de la clase Colecciones dentro del cual estamos usando un comparador personalizado para comparar el valor de un mapa.
  6. Imprima el objeto de la lista anterior usando para cada bucle.

Implementación:

Ejemplo 

Java

// java Program to Sort LinkedHashMap by Values
 
// Importing all classes
// from java.util package
import java.util.*;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
 
// Main Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an object of LinkedHashMap Class
        // Declaring object of Integer and String type
        LinkedHashMap<String, Integer> map
            = new LinkedHashMap<>();
        // Adding elements to the object of Map
        // using the put() method
        // Elements here are key-value pairs
        map.put("for", 2);
        map.put("Geek", 3);
        map.put("Geeks", 1);
 
        // Now, getting all entries from map and
        // convert it to a list using entrySet() method
        List<Map.Entry<String, Integer> > list
            = new ArrayList<Map.Entry<String, Integer> >(
                map.entrySet());
 
        // Using collections class sort method
        // and inside which we are using
        // custom comparator to compare value of map
        Collections.sort(
            list,
            new Comparator<Map.Entry<String, Integer> >() {
                // Comparing two entries by value
                public int compare(
                    Map.Entry<String, Integer> entry1,
                    Map.Entry<String, Integer> entry2)
                {
 
                    // Substracting the entries
                    return entry1.getValue()
                        - entry2.getValue();
                }
            });
 
        // Iterating over the sorted map
        // using the for each method
        for (Map.Entry<String, Integer> l : list) {
 
            // Printing the sorted map
            // using getKey()  and getValue() methods
            System.out.println("Key ->"
                               + " " + l.getKey()
                               + ": Value ->"
                               + l.getValue());
        }
    }
}
Producción

Key -> Geeks: Value ->1
Key -> for: Value ->2
Key -> Geek: Value ->3

Publicación traducida automáticamente

Artículo escrito por mroshanmishra0072 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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