用Java复制HashMap [英] Copying a HashMap in Java

查看:181
本文介绍了用Java复制HashMap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  HashMap< Integer,myObject> myobjectHashMap 

一个名为myobjectsList的类

然后我做了

  myojbectsListA = new myojbectsList(); 
myojbectsListB = new myobjectsList();

然后:将一些hashmap项目添加到A(like2)

然后

  myobjectListB = myobjectListA; // B有2 

然后:将哈希映射项添加到A; (比如4个)

然后将A返回到B中存储的项;

  myobjectListA = myobjectListb; 

但是当我这样做时,B会随着A的增长而增加hashmap项目到A.
A现在有6个项目,因为B有6个。



我希望A在原来的最后一次签名后仍然有2个结尾
复制与对象,什么是java的等价物?



补充:好的我留下了一些解释this.MyObjectsList不包含HashMap,它是从一个类MyBaseOjbectsList派生具有HashMap成员并且MyObjectsList扩展了MyBaseOjbectsList。如果你想要一个HashMap的副本,你需要用一个新的构造一个新的HashMap。

/ p>

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

这将创建地图的(浅)副本。


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

myojbectsListA = new myojbectsList();
myojbectsListB = new myobjectsList();

then: Add some hashmap items to A (like2)

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 have original 2 still at end after last assingment 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.

这篇关于用Java复制HashMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆