java - 在 Java 中复制 HashMap

标签 java copy hashmap clone

我正在尝试保留一个包含成员的类的临时容器:

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/

相关文章:

在小程序中使用 java.awt.Robot 类进行屏幕捕获时出现 java.security.AccessControlException

java - 静态初始化程序中的 System.out.println 显然输出了两次

optimization - 有条件地添加到 HashMap 的最佳方法,查找次数越少越好?

c++ - 将成对 vector 放入 unordered_map 与 map

C++ 复制一个用 new 创建的数组

java - 如何使用 Hash Map 形成一组相同的值

java - 在tabpane右侧添加一个按钮

java - 从字段变量读取值

c# - 泛型类装饰器的copy方法如何实现?

java - 在 Java 中复制数组