分享

java hashMap 与Collections.unmodifiedMap

 X的世界 2012-10-29

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());
    }
}
输出结果:
3
1
3
3
5
2
如果把上述程序中红色部分改为Map map2=Collections.unmodifiableMap(map);
则输出结果为:
3
1
3
5
5
2
从上可以得出以下结论:
  • HashMap的复制构造方法new HashMap<String,Integer>(map);中会为新对象构造新内存,与原来的内存变量不共享;
  • Collections.unmodifedMap(map);方法返回与参数map同样映射的视图,且该视图不可更改。,但该视图会随着map的更改而得到更新。即map中的变化会及时反映到该视图中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多