IdentityHashMap

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

IdentityHashMap区别与其他的键不能重复的容器,IdentityHashMap允许key值重复,但是——key必须是两个不同的对象,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。

看一段代码:

public static void main(String[] args) {// TODO Auto-generated method stubMap<String,String> map =new IdentityHashMap<String,String>(100);//初始化容器的大小String a="aa";String b=new String("aa");System.out.PRintln(a==b);map.put(a, "cc");map.put(b, "bb");map.put("2", "dd");System.out.println(map.size());//3Map<String,String> map1 =new IdentityHashMap<String,String>(100);map1.put("11", "cc");map1.put(new String("11"), "bb"); //map1.put(new String("11").intern(), "bb");map1.put("2", "dd");System.out.println(map1.size());//3Map<Integer,String> map2 =new IdentityHashMap<Integer,String>(100);map2.put(127, "cc");map2.put(127, "bb");map2.put(2, "dd");System.out.println(map2.size());//2//超出常量池范围~~Map<Integer,String> map3 =new IdentityHashMap<Integer,String>(100);map3.put(128, "cc");map3.put(128, "bb");map3.put(2, "dd");System.out.println(map3.size()); //3

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航