HashMap

HashMap


Hash :散列澜术,通過關(guān)于鍵值(key)的函數(shù)强窖,將數(shù)據(jù)映射到內(nèi)存存儲(chǔ)中一個(gè)位置來(lái)訪問岂却。這個(gè)過程叫做Hash井氢,這個(gè)映射函數(shù)稱做散列函數(shù)弦追,存放記錄的數(shù)組稱做散列表(Hash Table),又叫哈希表岳链。JAVA函數(shù)hashCode()即請(qǐng)求對(duì)象的哈希值花竞。

哈希表、散列表

保存“鍵值對(duì)”


方法

put(k, v)

get(k)

remove(k)

size()


1.1哈希運(yùn)算過程

HashMap顳部使用Entry[]數(shù)組來(lái)存放數(shù)據(jù)

數(shù)組默認(rèn)的初始長(zhǎng)度是16


調(diào)用key.hashCode()獲取鍵的哈希值

用哈希值來(lái)計(jì)算下標(biāo)i

把鍵值對(duì)封裝成Entry對(duì)象,放入i位

空位置约急,直接放入

有數(shù)據(jù)零远,依次用equals()比較鍵是否相等

? 找到相等的,覆蓋值

? 沒有相等的厌蔽,用鏈表連接在一起

負(fù)載率/加載因子到0.75(數(shù)據(jù)數(shù)量/數(shù)組容量)

(注:裝填因子(載荷因子)


散列表的載荷因子定義為:


? α = 填入表中的元素個(gè)數(shù) / 散列表的長(zhǎng)度.


α是散列表裝滿程度的標(biāo)志因子牵辣。由于表長(zhǎng)是定值,α與“填入表中的元素個(gè)數(shù)”成正比奴饮,所以纬向,α越大,表明填入表中的元素越多戴卜,產(chǎn)生沖突的可能性就越大逾条;反之,α越小投剥,標(biāo)明填入表中的元素越少师脂,產(chǎn)生沖突的可能性就越小。實(shí)際上江锨,散列表的平均查找長(zhǎng)度是載荷因子α的函數(shù)吃警,只是不同處理沖突的方法有不同的函數(shù)。


對(duì)于開放定址法啄育,荷載因子是特別重要因素酌心,應(yīng)嚴(yán)格限制在0.7-0.8以下。超過0.8挑豌,查表時(shí)的CPU緩存不命中(cache missing)按照指數(shù)曲線上升谒府。因此,一些采用開放定址法的hash庫(kù)浮毯,如Java的系統(tǒng)庫(kù)限制了荷載因子為0.75完疫,超過此值將resize散列表。

(原文:https://blog.csdn.net/yt618121/article/details/81162836)


所有數(shù)據(jù)重新執(zhí)行哈希運(yùn)算债蓝,放入新數(shù)組

[if !supportLists]l? [endif]jdk1.8

鏈表長(zhǎng)度到8壳鹤,轉(zhuǎn)成紅黑樹

樹上的數(shù)據(jù)減少到6,轉(zhuǎn)會(huì)成鏈表


哈希運(yùn)算測(cè)試


學(xué)生對(duì)象饰迹,對(duì)應(yīng)成績(jī)

stu1??95

stu2??91

放入重復(fù)的學(xué)生芳誓,對(duì)應(yīng)一個(gè)新的值,覆蓋之前的成績(jī)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啊鸭,一起剝皮案震驚了整個(gè)濱河市锹淌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赠制,老刑警劉巖赂摆,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡烟号,警方通過查閱死者的電腦和手機(jī)绊谭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)汪拥,“玉大人达传,你說我怎么就攤上這事∑戎” “怎么了宪赶?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)脯燃。 經(jīng)常有香客問我逊朽,道長(zhǎng),這世上最難降的妖魔是什么曲伊? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任叽讳,我火速辦了婚禮,結(jié)果婚禮上坟募,老公的妹妹穿的比我還像新娘岛蚤。我一直安慰自己,他們只是感情好懈糯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布涤妒。 她就那樣靜靜地躺著,像睡著了一般赚哗。 火紅的嫁衣襯著肌膚如雪她紫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天屿储,我揣著相機(jī)與錄音贿讹,去河邊找鬼。 笑死够掠,一個(gè)胖子當(dāng)著我的面吹牛民褂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疯潭,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼赊堪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了竖哩?” 一聲冷哼從身側(cè)響起哭廉,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎相叁,沒想到半個(gè)月后遵绰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辽幌,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年街立,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舶衬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埠通。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赎离,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出端辱,到底是詐尸還是另有隱情梁剔,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布舞蔽,位于F島的核電站荣病,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渗柿。R本人自食惡果不足惜个盆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朵栖。 院中可真熱鬧颊亮,春花似錦、人聲如沸陨溅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)门扇。三九已至雹有,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間臼寄,已是汗流浹背霸奕。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吉拳,地道東北人铅祸。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像合武,于是被迫代替她去往敵國(guó)和親临梗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 HashMap HashMap類繼承圖 HashMap屬性 HashMap構(gòu)造函數(shù)HashMap(int i...
    HikariCP閱讀 1,900評(píng)論 0 5
  • Java集合:HashMap源碼剖析 一稼跳、HashMap概述 二盟庞、HashMap的數(shù)據(jù)結(jié)構(gòu) 三、HashMap源碼...
    記住時(shí)光閱讀 731評(píng)論 2 1
  • 一汤善、HashMap概述 HashMap基于哈希表的Map接口的實(shí)現(xiàn)什猖。此實(shí)現(xiàn)提供所有可選的映射操作票彪,并允許使用nul...
    小陳阿飛閱讀 637評(píng)論 0 2
  • 移步數(shù)據(jù)結(jié)構(gòu)--容器匯總(java & Android)由于 HashMap 底層涉及到太多方面,一篇文章總是不能...
    凱玲之戀閱讀 831評(píng)論 0 5
  • 趕緊照照鏡子不狮,臉上除了長(zhǎng)出兩個(gè)痘皺紋倒是還是那些降铸,這樣就安心啦。一如既往有點(diǎn)口渴摇零,沒有饑腸轆轆推掸,好像喝點(diǎn)水就可以,...
    萍心而論閱讀 1,818評(píng)論 1 4