HashMap的長度為什么是2的冪次方

本篇文章為大家展示了HashMap 的長度為什么是2的冪次方,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創新互聯公司科技有限公司專業互聯網基礎服務商,為您提供綿陽機房托管,高防服務器,成都IDC機房托管,成都主機托管等互聯網服務。

為了能讓 HashMap 存取高效,盡量較少碰撞,也就是要盡量把數據分配均勻。我們上面也講到了過了,Hash 值的范圍值-2147483648到2147483647,前后加起來大概40億的映射空間,只要哈希函數映射得比較均勻松散,一般應用是很難出現碰撞的。但問題是一個40億長度的數組,內存是放不下的。所以這個散列值是不能直接拿來用的。用之前還要先做對數組的長度取模運算,得到的余數才能用來要存放的位置也就是對應的數組下標。這個數組下標的計算方法是“ (n - 1) & hash”。(n代表數組長度)。這也就解釋了 HashMap 的長度為什么是2的冪次方。

這個算法應該如何設計呢?

我們首先可能會想到采用%取余的操作來實現。但是,重點來了:“取余(%)操作中如果除數是2的冪次則等價于與其除數減一的與(&)操作(也就是說 hash%length==hash&(length-1)的前提是 length 是2的 n 次方;)?!?nbsp;并且 采用二進制位操作 &,相對于%能夠提高運算效率,這就解釋了 HashMap 的長度為什么是2的冪次方。

上述內容就是HashMap 的長度為什么是2的冪次方,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。

網頁題目:HashMap的長度為什么是2的冪次方
分享URL:http://m.kartarina.com/article26/jeohcg.html

成都網站建設公司_創新互聯,為您提供網站排名、自適應網站、網站設計、網站維護、虛擬主機、品牌網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
主站蜘蛛池模板: 亚洲视频无码高清在线| 亚洲精品无码专区久久同性男| 国产精品午夜无码av体验区| av无码a在线观看| 亚洲av成人无码久久精品| 无码人妻丰满熟妇片毛片| 国99精品无码一区二区三区| 亚洲日韩精品无码AV海量| 中文无码久久精品| 曰韩无码二三区中文字幕| 久久无码专区国产精品s| 亚洲 无码 在线 专区| 亚洲毛片无码专区亚洲乱| 免费无码又爽又刺激网站| 影音先锋无码a∨男人资源站| 亚洲国产成人精品无码一区二区| 中文字幕无码一区二区三区本日 | 人妻无码久久久久久久久久久| 中文一国产一无码一日韩| 影院无码人妻精品一区二区| 亚洲性无码AV中文字幕| 欧洲人妻丰满av无码久久不卡 | 中文字幕av无码专区第一页| 无码国模国产在线观看免费| 亚洲精品久久久久无码AV片软件| 精品无码一区在线观看| 亚洲精品无码高潮喷水在线| 东京热无码av一区二区| 无码色AV一二区在线播放| 日韩经典精品无码一区| 好了av第四综合无码久久| 无码中文字幕人妻在线一区二区三区| 毛片无码免费无码播放| 久久久久亚洲AV无码网站| 日韩精品中文字幕无码一区| 十八禁无码免费网站| 人妻夜夜添夜夜无码AV| 91久久精品无码一区二区毛片| 无码精品A∨在线观看免费| 亚洲中文字幕无码亚洲成A人片 | 无码人妻精品一区二区蜜桃|