Compara dos objetos HashMap en Java

En este artículo, aprenderemos cómo comparar dos objetos HashMap en Java. En el paquete java.util , la clase HashMap está presente. HashMap se utiliza para almacenar pares clave-valor, por lo que existen diferentes escenarios para comparar dos objetos de HashMap. Cual es la siguiente:

  1. Comparar entrada
  2. Comparar claves
  3. Comparar valores

Ejemplo:

Input : HashMapA = [a=1, b=2], HashMapB = [a=1, c=2]
Output:
    Compare Entry = Not Equal
    Compare Keys = Not Equal
    Compare values = Equal

1 . Comparar entrada :

La entrada es un par clave-valor. Podemos comparar dos HashMap comparando Entrada con el método equals() del Mapa devuelve verdadero si los mapas tienen los mismos pares clave-valor que significan la misma Entrada. 

A continuación se muestra la implementación:

Java

// Java program to compare two HashMap objects
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // New HashMap1
        HashMap<Integer, String> map1 = new HashMap<>();
  
        // Add Entry to map
        map1.put(1, "Akshay");
        map1.put(2, "Bina");
        map1.put(3, "Chintu");
  
        // New HashMap2
        HashMap<Integer, String> map2 = new HashMap<>();
  
        // Add Entry to map
        map2.put(3, "Chintu");
        map2.put(2, "Bina");
        map2.put(1, "Akshay");
  
        // New HashMap3
        HashMap<Integer, String> map3 = new HashMap<>();
  
        // Add Entry to map
        map3.put(1, "Akshay");
        map3.put(2, "Binod");
        map3.put(3, "Chintu");
  
        // Compare map1 and map2
        System.out.println("map1 == map2 : "
                           + map1.equals(map2));
  
        // Compare map1 and map3
        System.out.println("map1 == map3 : "
                           + map1.equals(map3));
    }
}
Producción

map1 == map2 : true
map1 == map3 : false

2. Comparar claves:

Podemos verificar si dos objetos HashMap tienen las mismas claves comparando sus claves obtenidas usando el método keySet() . Usamos el método equals() del conjunto para comparar claves.

A continuación se muestra la implementación:

Java

// Java program to compare two HashSet keys
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // New HashMap1
        HashMap<Integer, String> map1 = new HashMap<>();
  
        // Add Entry to map
        map1.put(1, "Akshay");
        map1.put(2, "Bina");
        map1.put(3, "Chintu");
  
        // New HashMap2
        HashMap<Integer, String> map2 = new HashMap<>();
  
        // Add Entry to map
        map2.put(3, "Chintu");
        map2.put(2, "Bina");
        map2.put(1, "Akshay");
  
        // New HashMap3
        HashMap<Integer, String> map3 = new HashMap<>();
  
        // Add Entry to map
        map3.put(1, "Akshay");
        map3.put(2, "Binod");
        map3.put(4, "Chintu");
  
        // Compare map1 and map2 keys using keySet() and
        // equals() method
        System.out.println(
            "map1 keys == map2 keys : "
            + map1.keySet().equals(map2.keySet()));
  
        // Compare map1 and map3 keys using keySet() and
        // equals() method
        System.out.println(
            "map1 keys == map3 keys : "
            + map1.keySet().equals(map3.keySet()));
    }
}
Producción

map1 keys == map2 keys : true
map1 keys == map3 keys : false

3. Comparar valores:

Podemos comparar si los valores contenidos en los objetos del mapa son iguales o no convirtiendo todos los valores del mapa en un conjunto usando el método de valores() y luego comparar los valores con el método equals() del conjunto. 

A continuación se muestra la implementación:

Java

// Java program to compare HashMap values
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // New HashMap1
        HashMap<Integer, String> map1 = new HashMap<>();
  
        // Add Entry to map
        map1.put(1, "Akshay");
        map1.put(2, "Bina");
        map1.put(3, "Chintu");
  
        // New HashMap2
        HashMap<Integer, String> map2 = new HashMap<>();
  
        // Add Entry to map
        map2.put(3, "Chintu");
        map2.put(2, "Bina");
        map2.put(1, "Akshay");
  
        // New HashMap3
        HashMap<Integer, String> map3 = new HashMap<>();
  
        // Add Entry to map
        map3.put(1, "Akshay");
        map3.put(2, "Binod");
        map3.put(3, "Shinchain");
  
        // Value set of map1
        HashSet<String> set1 = new HashSet<>(map1.values());
  
        // Value set of map2
        HashSet<String> set2 = new HashSet<>(map2.values());
  
        // Value set of map3
        HashSet<String> set3 = new HashSet<>(map3.values());
  
        // Compare map1 and map2 values using equals()
        // method
        System.out.println("map1 values == map2 values : "
                           + set1.equals(set2));
  
        // Compare map1 and map3 values using equals()
        // method
        System.out.println("map1 values == map3 values : "
                           + set1.equals(set3));
    }
}
Producción

map1 values == map2 values : true
map1 values == map3 values : false

Publicación traducida automáticamente

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