import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class HashMapTest {
public static void main(String[] args){
Map map=new HashMap<String ,Integer>();
map.put("1", 1);
map.put("2", 3);
System.out.println(map.get("2"));
Map map3=new HashMap<String,Integer>(map);
map3.put("1", 4);
System.out.println(map.get("1"));
Map map2=Collections.unmodifiableMap(new HashMap<String,Integer>(map));
System.out.println(map2.get("2"));
map.put("2", 5);
System.out.println(map2.get("2"));
System.out.println(map.get("2"));
System.out.println(map2.size());
}
}
輸出結(jié)果:
3
1
3
3
5
2
如果把上述程序中紅色部分改為Map map2=Collections.unmodifiableMap(map);
則輸出結(jié)果為:
3
1
3
5
5
2
從上可以得出以下結(jié)論:
- HashMap的復(fù)制構(gòu)造方法new HashMap<String,Integer>(map);中會(huì)為新對(duì)象構(gòu)造新內(nèi)存,與原來(lái)的內(nèi)存變量不共享;
- Collections.unmodifedMap(map);方法返回與參數(shù)map同樣映射的視圖,且該視圖不可更改。,但該視圖會(huì)隨著map的更改而得到更新。即map中的變化會(huì)及時(shí)反映到該視圖中。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。