java - 哈希算法将特定数量的数字放入固定数量的桶中

标签 java hash hashcode

我想将 10 个基数 10 位数字(0 到 9,999,999,999)填充到 6 个十六进制数字(00 00 00 到 FF FF FF)中。我知道会有碰撞,那没关系。我也不需要担心单独的链来容纳冲突。此外,我不需要从哈希值转换回原始值。只需要拥有一组可以表示为 00 00 00 到 FF FF FF 的桶(3 个字节中的 6 个十六进制数字)。所以是的,0 到 9,999,999,999 之间会有很多数字映射到这些存储桶......这很好。

有谁知道有一个好的算法可以做到这一点,或者可能有 Java/Kotlin 中的包吗?

最佳答案

最简单的方法是对以 10 为基数的数字使用 mod

base_var_value % 16777215

这个 16M 数字就是十六进制的 FF FF FF

关于java - 哈希算法将特定数量的数字放入固定数量的桶中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54913892/

相关文章:

java - java中所有基于哈希的数据结构都使用 'bucket'概念吗?

哈希表实现的哈希算法

php - 使用散列加查询字符串作为 jquery 插入网页的 anchor ?

java - 不同机器上字符串的哈希码返回相同的值

java - 将不同的 dynamodb 项(来自同一个 dynamodb 表)解码到多个 POJO

perl hashref/perl 语法

java - 如何重写hashcode和equals方法以避免在java中的HashSet中添加重复的字符串?

java - Android:当新值时将 EditText 设为空

java - 如何检索 OWLapi 中专用类的子类?

java - 在构造函数中用套接字填充ArrayList?