国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:127日期: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中會(huì)對(duì)key的hash值與Entry[]數(shù)組大小進(jìn)行再hash求取Entry數(shù)組的下標(biāo)位置,我剛才調(diào)試時(shí)發(fā)現(xiàn),2個(gè)不同key(hash值也不同),但經(jīng)過indexFor得到的index下標(biāo)是一樣的,也就是說(shuō)2個(gè)不同key值、不同hash值的數(shù)值串在一起形成了鏈表,我記得以前看別人寫的文章,都是說(shuō)hash值相同,但key值不同的2個(gè)值才會(huì)形成鏈表,但實(shí)際自己調(diào)試卻發(fā)現(xiàn)不一樣的結(jié)果,請(qǐng)大神們看看問題所在

問題解答

回答1:

Object (key) -> hashCode -> index

不同的Object可能有相同的hashCode(反過來(lái)一定不同,除非hashCode或equals定義錯(cuò)了);不同的hashCode可能有相同的index(反過來(lái)一定不同),這時(shí)才會(huì)形成鏈表。

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

標(biāo)簽: java
主站蜘蛛池模板: 桓台县| 南安市| 淮北市| 友谊县| 宜宾县| 内黄县| 方正县| 闵行区| 晋州市| 孙吴县| 汤阴县| 桃江县| 大足县| 宜城市| 大足县| 嘉义县| 嘉义市| 灵丘县| 红桥区| 鄂温| 崇文区| 诸暨市| 岳西县| 新和县| 富宁县| 衡东县| 当涂县| 偃师市| 科技| 潮安县| 清水县| 宜黄县| 淳化县| 延庆县| 夏河县| 陇西县| 东兰县| 桑日县| 马山县| 永康市| 河北区|