Aclaremos el concepto básico de copia superficial y copia profunda en Java . La repetición superficial es más rápida. Sin embargo, es «perezoso» porque maneja punteros y referencias. En lugar de crear una copia contemporánea del conocimiento particular al que apunta el puntero, simplemente copia sobre el precio del puntero. Entonces, tanto el primero como la copia pueden tener punteros que hacen referencia al conocimiento subyacente constante. Por otro lado, la copia profunda o la repetición profunda realmente clonan los datos subyacentes. No se comparte entre el primero y por lo tanto la copia.
El método java.util.HashMap.clone() está presente dentro del paquete java.util que generalmente se usa para devolver una copia superficial del mapa hash mencionado. Simplemente crea una copia del mapa.
Sintaxis:
Hash_Map.clone()
Parámetros: El método no toma ningún parámetro.
Valor de retorno: el método solo devuelve una copia de HashMap.
Ejemplo 1:
Java
// 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()); } }
Initial Mappings are: {20=Geeks, 25=Welcomes, 10=Geeks, 30=You, 15=4} The cloned map look like this: {25=Welcomes, 10=Geeks, 20=Geeks, 30=You, 15=4}
Ejemplo 2:
Java
// 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()); } }
Initial Mappings are: {4=15, Geeks=20, You=30, Welcomes=25} The cloned map look like this: {Geeks=20, 4=15, You=30, Welcomes=25}
Nota:
- La misma operación se puede realizar con cualquier tipo de mapeo con variación y combinación de diferentes tipos de datos.
- El método clone() hace la copia superficial. Pero aquí los valores en el hashmap original y clonado no se afectarán entre sí porque se usa un tipo de datos primitivo.
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA