问下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-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
评论
点赞
3
分享
牛客网
牛客企业服务