问下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个岗位
点赞 评论 收藏
分享
评论
点赞
3
分享
牛客网
牛客企业服务