HashMap源码分析之底层数据结构及索引定位
2020-04-16 10:12:36 4 举报
HashMap源码分析之底层数据结构及索引定位
作者其他创作
大纲/内容
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 1111
HashMap底层数据结构
1111 1111 1111 1111 0000 1111 0001 0101
^ 异或运算
h = key.hashCode()
hashCode右移16位,保证高低Bit都参与到Hash的计算
数量大于8,数组长度大于64.才转为红黑树
1111 1111 1111 1111 1111 0000 1110 1010
hash运算结果
put
0101 =5
确定哈希桶数组索引位置
h >>> 16
(n - 1) & hash n=16时
0000 0000 0000 0000 1111 1111 1111 1111
(key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16)
得出索引位置为5
优化的hash算法
0 条评论
下一页