Vamos esclarecer o conceito básico de cópia superficial e cópia profunda em java . A repetição superficial é mais rápida. No entanto, é “preguiçoso” ele lida com ponteiros e referências. Em vez de criar uma cópia contemporânea do conhecimento específico para o qual o ponteiro aponta, ele simplesmente copia o preço do ponteiro. Portanto, cada um o primeiro e, portanto, a cópia pode ter ponteiros que fazem referência ao conhecimento subjacente constante. Por outro lado, a cópia profunda ou a repetição profunda realmente clona os dados subjacentes. Não é compartilhado entre o primeiro e, portanto, a cópia.

O método java.util.HashMap.clone() está presente dentro do pacote java.util, que normalmente é usado para retornar uma cópia profunda do mapa hash mencionado. Ele apenas cria uma cópia do mapa.

Sintaxe: 

Hash_Map.clone()

Parâmetros: o método não aceita nenhum parâmetro.

Valor de retorno: O método retorna apenas uma cópia do HashMap. 

Implementação: 

Os programas abaixo são usados ​​para ilustrar o funcionamento do Método java.util.HashMap.clone()

Exemplo 1 

// Java Program to Illustrate the clone() Method by
// Mapping String Values to Integer Keys
 
// Importing utility classes
import java.util.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an empty HashMap
        HashMap<Integer, String> hash_map
            = new HashMap<Integer, String>();
 
        // Mapping string values to int keys
        // Using put() method
 
        // Custom input values passed as arguments
        hash_map.put(10, "Geeks");
        hash_map.put(15, "4");
        hash_map.put(20, "Geeks");
        hash_map.put(25, "Welcomes");
        hash_map.put(30, "You");
 
        // Print and display the HashMap
        System.out.println("Initial Mappings are: "
                           + hash_map);
 
        // Print and display the cloned HashMap
        // using clone() method
        System.out.println("The cloned map look like this: "
                           + hash_map.clone());
    }
}
Saída: 
Os mapeamentos iniciais são: {20 = Geeks, 25 = Welcome, 10 = Geeks, 30 = You, 15 = 4}
O mapa clonado tem esta aparência: {25 = Boas-vindas, 10 = Geeks, 20 = Geeks, 30 = You, 15 = 4}

 

Exemplo 2  
 

// Java code to illustrate the clone() method by
// Mapping Integer Values to String Keys
 
// Importing utility classes
import java.util.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an empty HashMap
        // Declaring objects of type integer and string
        HashMap<String, Integer> hash_map
            = new HashMap<String, Integer>();
 
        // Mapping int values to string keys
        // using put() method
        hash_map.put("Geeks", 10);
        hash_map.put("4", 15);
        hash_map.put("Geeks", 20);
        hash_map.put("Welcomes", 25);
        hash_map.put("You", 30);
 
        // Print and display the HashMap
        System.out.println("Initial Mappings are: "
                           + hash_map);
 
        // Print and display the cloned HashMap
        // using clone() method
        System.out.println("The cloned map look like this: "
                           + hash_map.clone());
    }
}
Saída: 
Os mapeamentos iniciais são: {4 = 15, Geeks = 20, You = 30, Welcome = 25}
O mapa clonado é parecido com este: {Geeks = 20, 4 = 15, You = 30, Welcome = 25}

 

Nota: A mesma operação pode ser realizada com qualquer tipo de mapeamento com variação e combinação de diferentes tipos de dados.