¿Cómo copiar un HashMap a otro HashMap en Java?

HashMap es similar a HashTable , pero no está sincronizado. También permite almacenar las claves nulas, pero solo debe haber un objeto de clave nula y puede haber cualquier número de valores nulos. Esta clase no garantiza el orden del mapa. Para usar esta clase y sus métodos, debe importar el paquete java.util.HashMap o su superclase.

Dado un HashMap , hay tres formas en que uno puede copiar el HashMap dado a otro:

  1. Iterando normalmente y colocándolo en otro HashMap usando el método put (k, v).
  2. Usando el método putAll().
  3. Usando el constructor de copia.

Método 1: iterando normalmente y colocándolo en otro HashMap usando el método put (k, v).

Una solución simple es iterar a través del mapa y usar put(Key,Value) una vez para cada clave de mapeo y valor en el otro Map.

Java

// Java program to iterate through the
// first map and put it in the second map
 
import java.util.HashMap;
import java.util.Map;
 
class GFG {
    public static <K, V> Map<K, V>
    copyMap(Map<K, V> original)
    {
 
        Map<K, V> second_Map = new HashMap<>();
 
        // Start the iteration and copy the Key and Value
        // for each Map to the other Map.
        for (Map.Entry<K, V> entry : original.entrySet()) {
 
            // using put method to copy one Map to Other
            second_Map.put(entry.getKey(),
                           entry.getValue());
        }
 
        return second_Map;
    }
 
    public static void main(String[] args)
    {
 
        Map<String, Integer> hashMap = new HashMap<>();
        hashMap.put("A", 1);
        hashMap.put("B", 2);
        hashMap.put("C", 3);
         
        // copyMap method would copy the original
        // hashMap to second_Map
        Map<String, Integer> second_Map = copyMap(hashMap);
       
        System.out.println(second_Map);
    }
}
Producción

{A=1, B=2, C=3}

Método 2: Usar el método putAll(k, v).

El método Map.putAll(k,v) se usa para copiar un HashMap en otro HashMap vacío.

Sintaxis:

new_hash_map.putAll(exist_hash_map)

Parámetros: el método toma un parámetro exist_hash_map que se refiere al mapa existente del que queremos copiar.

Valor devuelto: el método no devuelve ningún valor.

Excepción: el método lanza NullPointerException si el mapa del que queremos copiar es NULL.

Java

// Java program to copy hashmap to
// another hashmap using putAll() method
 
import java.util.HashMap;
import java.util.Map;
 
class GFG {
    public static <K, V> Map<K, V>
    copyMap(Map<K, V> original)
    {
 
        Map<K, V> second_map = new HashMap<>();
 
        // using putAll method to copy from original Map to
        // second_map
        second_map.putAll(original);
 
        return second_map;
    }
 
    public static void main(String[] args)
    {
 
        Map<String, Integer> hashMap = new HashMap<>();
 
        hashMap.put("A", 1);
        hashMap.put("B", 2);
        hashMap.put("C", 3);
 
        // copyMap method would copy the original
        // hashMap to second_Map
        Map<String, Integer> second_map = copyMap(hashMap);
       
        System.out.println(second_map);
    }
}
Producción

{A=1, B=2, C=3}

Método 3: usar el constructor de copias.

Es una de las formas más cortas y fáciles de copiar un HashMap en otro.

Podemos usar un constructor de copia para copiar un mapa que es un constructor especial para crear un nuevo objeto como una copia de un objeto existente.

Java

import java.util.HashMap;
import java.util.Map;
 
class GFG {
   
    // using copy constructor to return the original map
    // and then copy it in second_map
    public static <K, V> Map<K, V> copyMap(Map<K, V> original)
    {
       // constructor by passing original hashmap
       // in the parameter returns the new hashmap
       // with the copied content of the original one
        return new HashMap<>(original);
    }
 
    public static void main(String[] args)
    {
 
        Map<String, Integer> hashMap = new HashMap<>();
 
        hashMap.put("A", 1);
        hashMap.put("B", 2);
        hashMap.put("C", 3);
         
        // copyMap method would copy the original
        // hashMap to second_Map
        Map<String, Integer> second_map = copyMap(hashMap);
 
        System.out.println(second_map);
    }
}
Producción

{A=1, B=2, C=3}

Publicación traducida automáticamente

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