Java之IdentityHashMap实现原理

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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容