Java之IdentityHashMap實(shí)現(xiàn)原理

Java中key值可以重復(fù)的map

在正常的Map 實(shí)現(xiàn)(如 HashMap)中,當(dāng)且僅當(dāng)滿足下列條件時(shí)才認(rèn)為兩個(gè)鍵 k1 和 k2 相等:(k1==null ? k2==null : e1.equals(e2));
而 IdentityHashMap 類利用哈希表實(shí)現(xiàn) Map 接口,比較鍵(和值)時(shí)使用引用相等性(比較的是在內(nèi)存中的儲(chǔ)存地址)代替對(duì)象相等性;

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Map 我們都知道 Map 是鍵值對(duì)關(guān)系的集合,并且鍵唯一,鍵一對(duì)一對(duì)應(yīng)值。 關(guān)于 Map 的定義,大概就這些吧,...
    Anonymous___閱讀 697評(píng)論 0 1
  • Java集合:HashMap源碼剖析 一、HashMap概述 二、HashMap的數(shù)據(jù)結(jié)構(gòu) 三、HashMap源碼...
    記住時(shí)光閱讀 781評(píng)論 2 1
  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請(qǐng)注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,224評(píng)論 0 16
  • 傳送門(mén) 解讀阿里Java開(kāi)發(fā)手冊(cè)(v1.1.1) - 異常日志 前言 阿里Java開(kāi)發(fā)手冊(cè)談不上圣經(jīng),但確實(shí)是大量...
    kelgon閱讀 4,466評(píng)論 4 50
  • 你的向日葵花般臉龐低垂輕抿 我搖擺不定的追逐著花的方向 你待果實(shí) 我期花開(kāi) 錯(cuò)過(guò)的暗戀的 且做我的孤芳自賞 向日情...
    文刀金名閱讀 276評(píng)論 0 0

友情鏈接更多精彩內(nèi)容