1

我有一些整数值,例如:

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

现在,我想将这些值放入哈希表中。整数分布如下:每 1000 个区间 [意味着,0-1000、1000-2000 ...] 最多有 2-3 个值。

现在,在我的哈希表中,我只是将存储桶编号设置为负载因子 0.5。哈希码很简单:整数 % 桶数。但是,它会产生许多碰撞。

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

我有很多带有这样整数的文件。所以,设置固定的桶数是不可能的。

4

1 回答 1

0

@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}

于 2013-08-03T09:34:15.063 回答