日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

為什么Java String哈希函數乘數為31?

來源: 責編: 時間:2024-04-26 08:49:05 184觀看
導讀哈嘍,大家好,我是了不起。今天給大家介紹一個底層數字問題——為什么Java String哈希函數乘數為31?1、源碼重現在這個實現中,31 被用作乘數。那么,為什么選擇 31 作為乘數呢?2、降低哈希沖突31 是一個質數,相信大家學過數學

哈嘍,大家好,我是了不起。Jnh28資訊網——每日最新資訊28at.com

今天給大家介紹一個底層數字問題——為什么Java String哈希函數乘數為31?Jnh28資訊網——每日最新資訊28at.com

1、源碼重現

圖片Jnh28資訊網——每日最新資訊28at.com

在這個實現中,31 被用作乘數。那么,為什么選擇 31 作為乘數呢?Jnh28資訊網——每日最新資訊28at.com

2、降低哈希沖突

31 是一個質數,相信大家學過數學的,質數是這樣定義的:Jnh28資訊網——每日最新資訊28at.com

指在大于1的自然數中,除了1和它本身以外沒有任何正因數的自然數。Jnh28資訊網——每日最新資訊28at.com

在哈希函數中,使用質數作為乘數可以提高哈希值的分布均勻性。如果使用非質數作為乘數,那么哈希值的分布可能會出現偏斜。Jnh28資訊網——每日最新資訊28at.com

例如,如果使用 10 作為乘數,那么所有以 5 為尾數的字符串的哈希值將是相同的。這會導致哈希沖突的可能性增加。Jnh28資訊網——每日最新資訊28at.com

3、提高哈希計算速度

在 Java 中,int 類型的變量占用 32 位。Jnh28資訊網——每日最新資訊28at.com

31 是一個奇數,因此 31 * i 的結果可以只使用 31 位來表示。這意味著在計算哈希值時,可以使用位運算來代替乘法運算。Jnh28資訊網——每日最新資訊28at.com

位運算比乘法運算要快得多。Jnh28資訊網——每日最新資訊28at.com

因此,使用 31 作為乘數可以提高哈希計算速度。Jnh28資訊網——每日最新資訊28at.com

4、31是一個良好的折中方案

在實際應用中,使用 31 作為乘數可以提供良好的哈希值分布和計算速度。當然,也可以使用其他質數作為乘數。例如,37 和 43 也是不錯的選擇。Jnh28資訊網——每日最新資訊28at.com

但是,31 是一個相對較小的質數,因此它在計算速度方面具有優勢。此外,31 也是一個常用的質數,因此在許多其他哈希函數中也得到了使用。Jnh28資訊網——每日最新資訊28at.com

當然,31 并不是一個完美的乘數。在某些情況下,使用其他質數可能會更好。但是,對于大多數應用程序來說,31 都是一個不錯的選擇。Jnh28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-85697-0.html為什么Java String哈希函數乘數為31?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 詳解JavaScript中的層疊規則(CSS Specificity)

下一篇: 從零到生產:Go在Google的歷程

標簽:
  • 熱門焦點
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • 容量越大越不壞?24萬塊硬盤故障率報告公布 這些產品零故障

    8月5日消息,云存儲服務商Backblaze發布了最新的硬盤故障率報告,年故障率有所上升。Backblaze發布的硬盤季度統計數據,其中包括故障率等重要方面。這些結
  • 跑分安卓第一!Redmi K60至尊版8月發布!盧偉冰:目標年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發布,在此前舉行的戰略發布會上,官方該機將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分數
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • 三萬字盤點 Spring 九大核心基礎功能

    大家好,我是三友~~今天來跟大家聊一聊Spring的9大核心基礎功能。話不多說,先上目錄:圖片友情提示,本文過長,建議收藏,嘿嘿嘿!一、資源管理資源管理是Spring的一個核心的基礎功能,不
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • iQOO Neo8 Pro真機諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
  • 滴滴違法違規被罰80.26億 共存在16項違法事實

    滴滴違法違規被罰80.26億 存在16項違法事實開始于2121年7月,歷經一年時間,網絡安全審查辦公室對“滴滴出行”網絡安全審查終于有了一個暫時的結束。據“網信
Top 主站蜘蛛池模板: 武冈市| 横山县| 得荣县| 阜南县| 同心县| 巫山县| 聊城市| 洛浦县| 扶风县| 嵊泗县| 二连浩特市| 铅山县| 白河县| 凌海市| 石首市| 茂名市| 昔阳县| 竹山县| 无棣县| 黄石市| 海丰县| 永城市| 中山市| 常山县| 绥棱县| 清河县| 图片| 甘孜| 紫阳县| 余庆县| 潢川县| 北宁市| 阿坝县| 漳平市| 富川| 岳阳县| 涟水县| 沙湾县| 枞阳县| 阿勒泰市| 肥城市|