扰动函数是hash函数拿到k的hashcode值,这个值是一个32位的int,让高16位与低16位进行异或。
理论上来说字符串的hashCode是一个int类型值,那可以直接作为数组下标了,且不会出现碰撞。但是这个hashCode的取值范围是[-2147483648,
2147483647],有将近40亿的长度,谁也不能把数组初始化的这么大,内存也是放不下的。
混合原始哈希码的高位和低位,以此来加大低位的随机性,这样设计在一定的程度上减少了hash碰撞,优化了散列的效果 。
什么是扰动函数?怎么设计的?为什么这个设计?
最新推荐文章于 2023-12-02 20:28:55 发布