Android开发经验谈

Java之IdentityHashMap实现原理

2017-03-04  本文已影响0人  dotaer_shashen
Java中key值可以重复的map

在正常的Map 实现(如 HashMap)中,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1==null ? k2==null : e1.equals(e2));
而 IdentityHashMap 类利用哈希表实现 Map 接口,比较键(和值)时使用引用相等性(比较的是在内存中的储存地址)代替对象相等性;

IdentityHashMap<String,Object> map =newIdentityHashMap<String,Object>();  
map.put(newString("xx"),"first");  
map.put(newString("xx"),"second");  
for (Entry<String, Object> entry : map.entrySet()) {  
    System.out.print(entry.getKey() +"    ");  
    System.out.println(entry.getValue());  
}  
System.out.println("idenMap="+map.containsKey("xx"));  
System.out.println("idenMap="+map.get("xx"));  

xx    first  
xx    second  
idenMap=false  
idenMap=null

上一篇下一篇

猜你喜欢

热点阅读