第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在Java中實(shí)現(xiàn)HashMap數(shù)據(jù)結(jié)構(gòu)?

如何在Java中實(shí)現(xiàn)HashMap數(shù)據(jù)結(jié)構(gòu)?

縹緲止盈 2021-04-08 18:15:30
我想實(shí)現(xiàn)一個(gè)HashMap數(shù)據(jù)結(jié)構(gòu),但是我不太清楚該如何處理底層數(shù)組結(jié)構(gòu)。如果我沒記錯(cuò)的話,在HashMap中,每個(gè)鍵都經(jīng)過哈希處理并轉(zhuǎn)換為整數(shù),該整數(shù)用于引用數(shù)組索引。由于直接引用,搜索時(shí)間為O(1)。假設(shè)K是關(guān)鍵,V是值。我們可以創(chuàng)建一個(gè)大小為n的V型數(shù)組,該數(shù)組將駐留在hash(K)函數(shù)產(chǎn)生的索引中。但是,hash(K)不會(huì)產(chǎn)生連續(xù)的索引,Java的數(shù)組也不稀疏,要解決此問題,我們可以創(chuàng)建一個(gè)非常大的數(shù)組來容納元素,但效率不高,它將容納很多NULL元素。一種解決方案是按連續(xù)順序存儲(chǔ)元素,要查找元素,我們必須搜索整個(gè)數(shù)組并檢查元素的鍵,但這將是線性時(shí)間。我想實(shí)現(xiàn)直接訪問。
查看完整描述

2 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以通過將哈希對(duì)數(shù)組大小取模來使用較小的數(shù)組進(jìn)行基礎(chǔ)存儲(chǔ),如下所示:

hash?=?hashfunc(key)
index?=?hash?%?array_size

這是一個(gè)很好的解決方案,因?yàn)槟梢允够A(chǔ)數(shù)組保持相對(duì)密集,而不必修改哈希函數(shù),并且它不會(huì)影響時(shí)間復(fù)雜度。


查看完整回答
反對(duì) 回復(fù) 2021-04-21
  • 2 回答
  • 0 關(guān)注
  • 152 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)