zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【集合我能讲两小时004】 hashmap的put方法的hash函数是如何计算的?

方法计算集合 如何 函数 小时 HASH HashMap
2023-09-27 14:29:28 时间
hashmap的put方法的hash函数是如何计算的?

image-20220301185257294

  • key==null
    • key等于null时,值为0,所以hashmap的key可以为null,
    • 对比hashtable,如果key为null,会抛出异常;hashtable的key不可为null
  • key!=null
    • 首先计算hashcode的值,再hashcode的值右移16位再和hashcode的值进行异或运算
    • 此过程就是扰动函数
    • 扰动函数原理,如果是小于32位,则右移16位后补零,进行异或运算后还是0
    • 如果是32位的,则右移16位后,高位补0,原来的高位变成了低位,进行亦或运算,增加随机,均匀分布