问下currentHashMap 的一些问题,请进来看下

//大家知道   这段代码的原理吗?  
  1. private static int hash(int h) {  
  2.     // Spread bits to regularize both segment and index locations,  
  3.     // using variant of single-word Wang/Jenkins hash.  
  4.     h += (h <<  15) ^ 0xffffcd7d;  
  5.     h ^= (h >>> 10);  
  6.     h += (h <<   3);  
  7.     h ^= (h >>>  6);  
  8.     h += (h <<   2) + (h << 14);  
  9.     return h ^ (h >>> 16);  
  10. }  
全部评论
是1.8的么,1.8里面好像没有了啊
点赞 回复 分享
发布于 2017-08-29 09:59
我理解的是要对传入的hashCode值进行重散列以减小冲突。这个函数的作用是将传入的键(key)的hashCode值与它本身向左(右)移位后的值按位进行 与 操作,使hashCode的高位也能参与到运算中,避免在接下来计算index时只使用hashCode的低位进行运算。 详见:http://ifeve.com/concurrenthashmap/
点赞 回复 分享
发布于 2017-08-29 10:06
好像是进行哈希值的扰码 减少hash值碰撞
点赞 回复 分享
发布于 2017-08-29 13:38

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
11-27 12:36
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
评论
点赞
3
分享
牛客网
牛客企业服务