2012-10-04 57 views
1
ClassData customClass= customclass.get("John" + 1); 
ClassData currentClass= currentclass.get("John"); 
currentClass = customClass; 

public Map<String, ClassData> currentclass = new HashMap<String, ClassData>(); 
public Map<String, ClassData> customclass = new HashMap<String, ClassData>(); 

是否可以通过这种方式将customclass的ClassData设置为currentclass? 或者我应该为ClassData的每个属性设置/获取它?或者其他方式是否真的有效,而不删除任何其他hashmap密钥的值。如何设置从一个hashmap到另一个hashmap的值?

+0

调用HashMap中具有类名称是很烦人的,你可能会想改变它 –

回答

2

你的代码根本不会改变地图。如果你想在一个图中的单个项设置为从另一个值,最简单的是做它明确:

currentclass.put("John", customclass.get("John" + 1)); 

但是,如果你想所有的一个映射的键/值对复制到另外,你可以使用的MapputAll方法:

currentclass.putAll(customclass); 
+0

好是有道理的感谢,将与currentClass = customClass;?发生什么事我很好奇。 – user1621988

+0

@ user1621988 - 您最终会使用'currentClass'和'customClass'引用相同的对象,就好像您执行了'currentClass = customClass = customclass.get(“John”+ 1);'。 “当前类”地图根本不会受到影响。 (顺便说一句,你应该为自己做一个忙,并且将地图重命名为像'currentClassMap'和'customClassMap'这样的东西 - 很难通过在变量名中间的某个地方更改大小来区分两个变量。) –