如何将静态的一个(A)hashmap值复制到另一个(B)hashmap但是如果更改B Hashmap中的任何值则不应该反映在A HashMap中
实施例
public static HashMap<String,String> firstHashMap = new HashMap<String,String>();
firstHashMap.put("1","A");
firstHashMap.put("2","B");
public static HashMap<String,String> secondHashMap = new HashMap<String,String>(firstHashMap);
secondHashMap.put("3","c");
secondHashMap.put("4","d");
问题:
虽然这样做,firstHashMap
也包含secondHashMap
值
我们如何做到这一点?
我需要firstHashMap
只应包含firstHashMap
个值,secondHashMap
应包含这两个值。
我还尝试制作secondHashMap.clone();
答案 0 :(得分:2)
为什么不使用putAll
?
public static HashMap<String, String> firstHashMap = new HashMap<String, String>();
static {
firstHashMap.put("1", "A");
firstHashMap.put("2", "B");
}
public static HashMap<String, String> secondHashMap = new HashMap<String, String>();
static {
secondHashMap.put("3", "c");
secondHashMap.put("4", "d");
secondHashMap.putAll(firstHashMap);
}
它会替换常用键的值(你不会在这里),但也会放置新的键值对。