Copying a HashMap in Java Copying a HashMap in Java java java

Copying a HashMap in Java


If you want a copy of the HashMap you need to construct a new one with.

myobjectListB = new HashMap<Integer,myObject>(myobjectListA);

This will create a (shallow) copy of the map.


You can also use

clone()

Method to copy all elements from one hashmap to another hashmap

Program for copy all elements from one hashmap to another

import java.util.HashMap;public class CloneHashMap {         public static void main(String a[]) {            HashMap hashMap = new HashMap();            HashMap hashMap1 = new HashMap();            hashMap.put(1, "One");        hashMap.put(2, "Two");        hashMap.put(3, "Three");        System.out.println("Original HashMap : " + hashMap);        hashMap1 = (HashMap) hashMap.clone();        System.out.println("Copied HashMap : " + hashMap1);        }    }

source : http://www.tutorialdata.com/examples/java/collection-framework/hashmap/copy-all-elements-from-one-hashmap-to-another


The difference is that in C++ your object is on the stack, whereas in Java, your object is in the heap. If A and B are Objects, any time in Java you do:

B = A

A and B point to the same object, so anything you do to A you do to B and vice versa.

Use new HashMap() if you want two different objects.

And you can use Map.putAll(...) to copy data between two Maps.