Programa Java para ordenar un HashMap por claves y valores

HashMap<K, V> es una colección de Java y forma parte del paquete java.util . Proporciona la implementación básica de la interfaz Map de Java. Almacena los datos en forma de pares Clave, Valor, donde las claves deben ser únicas pero no hay restricción para los valores. Si intentamos insertar la clave duplicada, reemplazará el elemento de la clave correspondiente.

Clasificación de HashMap por valores

La idea es almacenar el conjunto de entradas en una lista y luego ordenar la lista según los valores usando el método Collections.sort() con la ayuda de Comparator . Luego obtenga el valor para cada clave de la lista y luego muestre el resultado.

Ejemplo

Java

// Java program to sort Hashmap based on values
 
import java.lang.*;
import java.util.*;
 
public class GFG {
 
    // function to sort hashmap based on values
    public static HashMap<String, Integer>
    sortByValue(HashMap<String, Integer> hm)
    {
        // Creating a list from elements of HashMap
        List<Map.Entry<String, Integer> > list
            = new LinkedList<Map.Entry<String, Integer> >(
                hm.entrySet());
 
        // Sorting the list using Collections.sort() method
        // using Comparator
        Collections.sort(
            list,
            new Comparator<Map.Entry<String, Integer> >() {
                public int compare(
                    Map.Entry<String, Integer> object1,
                    Map.Entry<String, Integer> object2)
                {
                    return (object1.getValue())
                        .compareTo(object2.getValue());
                }
            });
 
        // putting the  data from sorted list back to hashmap
        HashMap<String, Integer> result
            = new LinkedHashMap<String, Integer>();
        for (Map.Entry<String, Integer> me : list) {
            result.put(me.getKey(), me.getValue());
        }
 
        // returning the sorted HashMap
        return result;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        // creating object of HashMap class
        HashMap<String, Integer> hashmap
            = new HashMap<String, Integer>();
 
        // inserting key-value pair into hashmap
        hashmap.put("five", 5);
        hashmap.put("seven", 7);
        hashmap.put("three", 3);
        hashmap.put("nine", 9);
        hashmap.put("zero", 0);
        hashmap.put("eight", 8);
 
        // sorting the HashMap based on values
        Map<String, Integer> map = sortByValue(hashmap);
 
        // print the sorted hashmap(based on values)
        for (Map.Entry<String, Integer> entry :
             map.entrySet()) {
            System.out.println("Key : " + entry.getKey()
                               + ", Value : "
                               + entry.getValue());
        }
    }
}
Producción

Key : zero, Value : 0
Key : three, Value : 3
Key : five, Value : 5
Key : seven, Value : 7
Key : eight, Value : 8
Key : nine, Value : 9

Clasificación de HashMap por claves

La idea es poner todos los datos de HashMap en una ArrayList . Luego, extraer todas las claves de HashMap en una ArrayList. A continuación, ordene las claves extraídas con el método Collections.sort() y, a continuación, extraiga su valor para cada clave con el método get() . Finalmente, el mapa se ordena según sus claves.

Ejemplo

Java

// Java Code to sort Map by key value
import java.util.*;
class GFG {
 
    // This map stores unsorted values
    static HashMap<Integer, String> m = new HashMap<>();
 
    // Function to sort map by Key
    public static void sortMapByKey()
    {
        ArrayList<Integer> sortKeys
            = new ArrayList<Integer>(m.keySet());
 
        Collections.sort(sortKeys);
 
        // Getting value for each key and displaying
        // results.
        for (Integer x : sortKeys)
            System.out.println("Key = " + x
                               + ", Value = " + m.get(x));
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // putting values in the Map
        m.put(7, "seven");
        m.put(5, "five");
        m.put(1, "one");
        m.put(3, "three");
        m.put(9, "nine");
 
        // Calling the function to sortMapByKey to
        // perform sorting based on keys
        sortMapByKey();
    }
}
Producción

Key = 1, Value = one
Key = 3, Value = three
Key = 5, Value = five
Key = 7, Value = seven
Key = 9, Value = nine

Publicación traducida automáticamente

Artículo escrito por Gunjanpaul 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 *