【发布时间】:2015-08-19 12:27:27
【问题描述】:
我正在阅读有关 Java 随机化哈希键的方法 here
显然,这个想法是确保低位是“随机的”以帮助分发,但我试图更多地理解这一点。
因此,如果我们有一个大小为 10 的表,那么数字 0、10、20、30、40 等都属于存储桶 0,数字 1、11、21、31 等属于存储桶 1 等(使用模 10)。
因此,更改位模式可以使它们进入不同的存储桶,而不是全部进入存储桶 0。
但我不清楚的是,是什么属性使低位影响这一点,我们需要将它们随机化。
所以我们有:
0000 0000 (0)
0000 1010 (10)
0001 0100 (20)
0001 1110 (30)
0010 1000 (40)
低位位的规律性是什么使它们被放置到同一个槽中?
也许我对以下内容感到困惑?我的理解是低阶位的一些规律性会导致冲突,我们尝试随机化位来补偿
【问题讨论】:
标签: java algorithm hash hashmap hash-collision