HashMap如何确定key的位置

HashMap中key的插入位置是根据hashcode()方法得到的。我想问的是如何根据某个key的hash值得到该key在HashMap中应该存放的位置?#Java工程师#
全部评论
h & (length - 1)。h是rehashing后的值,类似高低位互&
点赞 回复 分享
发布于 2018-03-07 21:54
JDK1.8中:定位当前插入节点的桶的位置: 1. 取得key的hash值,不是简单的取key的hashCode:       1.1 令 h = key.hashCode();       1.2 令 hash = h ^ (h >>> 16) ;其实是h高低位异或取得hash,是为了增加随机性; 2. 根据hash值,得到桶的位置:        i =(n - 1)& hash;本质是用hash对n取模,n是桶数组的长度;
点赞 回复 分享
发布于 2018-03-07 22:11

相关推荐

淬月星辉:专利是什么?至少描述一下吧,然后把什么计算机二级、普通话这种拉低格调的证书删掉,不然hr以为你没东西写
点赞 评论 收藏
分享
10-26 13:03
已编辑
门头沟学院 物流经理
在okr拆解的小太阳...:实习待过,我待的部门氛围很好,基本不加班,双休有保证。
投递正浩创新EcoFlow等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务