2012-10-04 94 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'這樣的東西 - 很難通過在變量名中間的某個地方更改大小來區分兩個變量。) –