有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

具有分布值的java自定义哈希表

我有一些整数值,比如:

0, 2, 3, 1021, 2001, 2101, 3054 ...

现在,我想把这些值放到一个哈希表中。整数的分布如下:每1000个间隔[意味着,0-1000,1000-2000…]最大值为2-3

现在,在我的哈希表中,我只是简单地设置了装载系数为0.5的桶数。散列代码就是:整数%bucket number。然而,它会产生许多冲突

有没有更好的方法来处理这种类型的特定分发

我有很多这样的整数文件。因此,设置固定的铲斗编号是不可能的


共 (1) 个答案

  1. # 1 楼答案

    @asslysis表示必须创建自己的哈希函数 GoodHashingFunction 好的散列函数是必要的,因为如果它是任何重复的键 它将取代价值。参见代码

    import java.util.Hashtable;
    public class HashMapKey {
    public static void main(String[] args) {
        Hashtable a=new Hashtable();
        a.put("abc", 1000);
        a.put("abc", -1000);
        a.put("cde", 2000);
        System.out.println(a);
    }
    
    }
    

    输出为{abc=-1000,cde=2000}