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

时间:2013-08-03 08:49:34

标签: java hash hashtable

我有一些整数值,如:

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

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

现在,在我的哈希表中,我只是设置载荷因子为0.5的桶号。哈希码简单:整数%桶号。然而,它给了很多碰撞。

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

我有很多带有这种整数的文件。因此,设置固定的桶数是不可能的。

1 个答案:

答案 0 :(得分: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}