I am trying to keep a temporary container of a class that contains member :
HashMap<Integer,myObject> myobjectHashMap
A class called myobjectsList
Then I do
myobjectsListA = new myobjectsList();
myobjectsListB = new myobjectsList();
then: Add some hashmap items to A (like 2)
then:
myobjectListB = myobjectListA; //B has 2
then: Add hashmap items to A (like 4 more)
then: return A to the items stored in B
myobjectListA = myobjectListb;
But when I do this, B grows with A while I am adding hashmap items to A. A now has 6 items in it because B had 6.
I want A to still have the original 2 at the end after last assignment. In C++ I would use copy with objects, what is the java equivalent?
Added: OK I left something out explaining this. MyObjectsList
does not contain the HashMap, it is derived from a class MyBaseOjbectsList
which has the HashMap member and MyObjectsList
extends MyBaseOjbectsList
. Does this make a difference?
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.