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

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务