- hash%length = hash&(length - 1)的前提是length爲2的n次方;
- length爲2的n次方,可以減少hash碰撞,因爲length-1的二進制表示全爲1,每一位都能&1,不同位置上不產生hash碰撞;
- 模運算之前,需先將key生成的hashCode進行 高16位異或運算 或 低16位無符號右移,目的在於減少hash碰撞(hashCode的後n位爲0,hash&(length - 1)的結果都爲0)。
- 如何設計可作爲hashMap Key的類?equals相等,hashcode一定相等;hashcode相等,equals不一定相等;hashcode不相等,equals一定不相等;equals不相等,hashcode不一定不相等。
HashMap總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
java線程併發庫
ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
xinyetonghua
2020-07-08 12:36:33
分佈式系統各個節點狀態如何同步?淺談一下
毛发旺盛的程序员
2020-07-08 12:27:30
ZooKeeper 一致性協議 ZAB 原理,瞭解一下
毛发旺盛的程序员
2020-07-08 12:27:20
Spring中Transactional 失效的解決方案,讓我們一起探討一下
毛发旺盛的程序员
2020-07-08 12:27:20
太狠了,Spring全家桶筆記,一站式通關全攻略,已入職某廠漲薪18K
毛发旺盛的程序员
2020-07-08 12:27:20
java中的NAN和INFINITY java中的NAN和INFINITY
a318013800
2021-11-28 13:09:28
【Java 小白菜入門筆記 2.2】常用的類和方法
江户川柯壮
2020-07-08 12:39:29
springboot增量打包更新--靜態資源分離打包
CNOYG
2020-07-08 12:39:29
增加FastDfs多文件存儲路徑
pengdayong77
2020-07-08 12:37:23
JSONArray指定日期的反序列化
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM
pengdayong77
2020-07-08 12:37:23
java緩存對象,使之不需要每次都從數據庫中獲取,以提高程序性能
pengdayong77
2020-07-08 12:37:23
大數據入門(七)win10上eclipse使用Hadoop的配置
33 Audrey
2020-07-08 12:35:23
Java動態綁定機制經典案列理解
柘月十七
2020-07-08 12:33:16