Método clone() de Java HashMap

Java HashMap Java HashMap

El método clone() se utiliza para copiar un HashMap, es una copia superficial.

Ampliación:

La copia superficial solo copia el puntero que apunta a un objeto, sin copiar el objeto en sí. Los objetos nuevo y antiguo siguen compartiendo el mismo bloque de memoria, por lo tantosi uno de los objetos cambia esa dirección, afectará al otro objeto.。。

La copia superficial se contrapone a la copia profunda. La copia profunda copia completamente un objeto de la memoria, abriendo una nueva región en la memoria heap para almacenar el nuevo objeto, ymodificar el nuevo objeto no afecta al objeto original.。

La sintaxis del método clone() es:

hashmap.clone()

Nota:hashmap es un objeto de la clase HashMap.

Descripción de parámetros:

  • Ninguno

Valor de retorno

Devuelve una copia de la instancia (objeto) HashMap.

Ejemplo

El siguiente ejemplo demuestra el uso del método clone():

Ejemplo

import java.util.HashMap;

class Main {
    public static void main(String[] args) {

        HashMap<Integer, String> sites = new HashMap<>();
        sites.put(1, "Google");
        sites.put(2, "Ejemplo");
        sites.put(3, "Taobao");
        System.out.println("HashMap: " + sites);

        // Copiar sites
        HashMap<Integer, String> cloneSites = (HashMap<Integer, String>)sites.clone();
        System.out.println("Cloned HashMap: " + cloneSites);
    }
}

Al ejecutar el programa anterior, el resultado es:

HashMap: {1=Google, 2=Ejemplo, 3=Taobao}
Cloned HashMap: {1=Google, 2=Ejemplo, 3=Taobao}

En el ejemplo anterior, creamos un HashMap llamado sites. En el código, después se utilizó el método clone() para copiar una copia de sites.

Observa la expresión:

(HashMap<Integer, String>)sites.clone();
  • sites.clone() - Devuelve el objeto sites copiado.
  • (HashMap<Integer, String>) convierte el objeto devuelto en un HashMap donde sus claves (key) son de tipo Integer y sus valores (values) son de tipo String.

Valor de retorno del método clone():

Ejemplo

import java.util.HashMap;

class Main {
    public static void main(String[] args){

        // Crear un hashmap
        HashMap<String, Integer> primeNumbers = new HashMap<>();
        primeNumbers.put("Two", 2);
        primeNumbers.put("Three", 3);
        primeNumbers.put("Five", 5);
        System.out.println("Numbers: " + primeNumbers);

        // Mostrar el valor de retorno del método clone()
        System.out.println("Return value of clone(): " + primeNumbers.clone());
    }
}

Al ejecutar el programa anterior, el resultado es:

Prime Numbers: {Five=5, Two=2, Three=3}
Return value of clone(): {Five=5, Two=2, Three=3}

En el ejemplo anterior, creamos un HashMap llamado primeNumbers. El resultado es el valor de retorno del método clone().

Nota:El método clone() no es específico de la clase HashMap; cualquier clase que herede la interfaz Cloneable puede utilizar el método clone().

Java HashMap Java HashMap

Otras extensiones