久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

java - HashMap中對于indexFor(int h, int length)的疑惑

瀏覽:130日期:2023-12-15 16:22:30

問題描述

static int indexFor(int h, int length) {// assert Integer.bitCount(length) == 1 : 'length must be a non-zero power of 2';return h & (length-1); }

HashMap中會對key的hash值與Entry[]數組大小進行再hash求取Entry數組的下標位置,我剛才調試時發現,2個不同key(hash值也不同),但經過indexFor得到的index下標是一樣的,也就是說2個不同key值、不同hash值的數值串在一起形成了鏈表,我記得以前看別人寫的文章,都是說hash值相同,但key值不同的2個值才會形成鏈表,但實際自己調試卻發現不一樣的結果,請大神們看看問題所在

問題解答

回答1:

Object (key) -> hashCode -> index

不同的Object可能有相同的hashCode(反過來一定不同,除非hashCode或equals定義錯了);不同的hashCode可能有相同的index(反過來一定不同),這時才會形成鏈表。

這里的hashCode可能跟你看到的某些文章的hash不是一個意思吧。

標簽: java
主站蜘蛛池模板: 瑞昌市| 浦江县| 台北县| 富宁县| 汉阴县| 施甸县| 甘肃省| 安福县| 鄂托克旗| 土默特左旗| 池州市| 和平县| 泾源县| 防城港市| 政和县| 黄骅市| 瓮安县| 长宁区| 泾源县| 克什克腾旗| 滕州市| 拉萨市| 安新县| 梅州市| 建湖县| 陆川县| 阿图什市| 乐陵市| 饶河县| 山东省| 新宁县| 宣恩县| 黎平县| 双牌县| 扎囊县| 大冶市| 尤溪县| 凉山| 色达县| 抚顺县| 青河县|