被面試官狂問HashMap:萬般無奈只好肝了這套HashMap底層原理源碼教程,
2023-08-22 21:31 作者:bilibili00007 | 我要投稿



table賦值給tab,是因為tab是局部變量,而且被多次使用,相比堆中的table效率更高


取余和&運算的區(qū)別?

高位都是0,&結(jié)果都是0,低位都是1,&之后就是低位的值。
保證了hash擾動之后的結(jié)果肯定在16以內(nèi),而且是均勻分布的。
這也是為什么容量必須是2的冪次方的原因。否則就無法正常的擾動。

指定容量非2的冪次方,hashmap也是構造一個2的冪次方的數(shù)組。

如果不做右移,高位就不會參與到后續(xù)的運算。
標簽: