哈希算法,将特定数量的数字放入固定数量的存储桶中

时间:2019-02-27 20:23:49

标签: java hash hashcode

我想将10个基数10位数(0到9,999,999,999)塞入6个十六进制数(00 00 00到FF FF FF)。我知道会有碰撞,那很好。我也不必担心要存放冲突的单独链。而且,我也不需要从哈希表转换回原始表。只需要有一定数量的存储桶(3个字节中的6个十六进制数字)就可以表示为00 00 00到FF FF FF。所以是的,在0到9,999,999,999中会有很多数字映射到这些存储桶...没关系。

有人知道这样做的好算法还是Java / Kotlin中的软件包?

1 个答案:

答案 0 :(得分:3)

最简单的方法是在底数为10的数字上简单地使用mod

base_var_value % 16777215

那个16M的数字只是FF FF FF以十六进制表示。