/ / saída do método de clonagem no HashMap - java, hashmap, clone

saída do método de clonagem no HashMap - java, hashmap, clone

     // Creating a new HashMap
HashMap<Integer, String> hmap2 = new HashMap<Integer, String>();

// cloning first HashMap in the second one
hmap2=(HashMap)hmap.clone();
//System.out.println("Cloned Map contains: "+hmap2);
String x = hmap.get(11);
x = "aks";
hmap.put(11, x);
hmap.put(99, "kdkshkjshdk");

System.out.println("Cloned Map contains: "+hmap);
System.out.println("Cloned Map contains: "+hmap2);
}
}

Por que as alterações no hmap não estão sendo reformuladas no hmap2? Esta é uma cópia superficial e o hmap e o hmap2 estão apontando para a mesma referência de memória. Por favor, corrija onde estou errado.

Respostas:

1 para resposta № 1

Você está clonando o hmap vazio em hmap2 e, em seguida, configurando os valores em hmap.

     // Creating a new HashMap

HashMap<Integer, String> hmap = new HashMap<Integer, String>();

HashMap<Integer, String> hmap2 = new HashMap<Integer, String>();

//System.out.println("Cloned Map contains: "+hmap2);

String x = hmap.get(11);

x = "aks";

hmap.put(11, x);

hmap.put(99, "kdkshkjshdk");

// cloning first HashMap in the second one

hmap2=(HashMap)hmap.clone();



System.out.println("Cloned Map contains: "+hmap);
System.out.println("Cloned Map contains: "+hmap2);