我正在尝试保留一个包含成员的类的临时容器:
HashMap<Integer,myObject> myobjectHashMap
一个名为 myobjectsList 的类
那我做
myobjectsListA = new myobjectsList();
myobjectsListB = new myobjectsList();
然后:将一些 hashmap 项添加到 A(如 2)
然后:
myobjectListB = myobjectListA; //B has 2
然后:将 hashmap 项添加到 A(比如另外 4 个)
然后:将A返回到B中存储的项目
myobjectListA = myobjectListb;
但是当我这样做时,当我向 A 添加 HashMap 项时,B 会随着 A 增长。 A 现在有 6 个项目,因为 B 有 6 个。
我希望 A 在最后一次分配后仍然保留原来的 2。 在 C++ 中我会使用对象的复制,java 的等价物是什么?
补充:好的,我遗漏了一些东西来解释这一点。 MyObjectsList
不包含 HashMap,它派生自具有 HashMap 成员的类 MyBaseOjbectsList
并且 MyObjectsList
扩展了 MyBaseOjbectsList
。这有什么不同吗?
最佳答案
如果你想要一份 HashMap 的副本,你需要用它构造一个新的。
myobjectListB = new HashMap<Integer,myObject>(myobjectListA);
这将创建 map 的(浅)副本。
关于java - 在 Java 中复制 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079266/