我有一些整数值,比如:
0, 2, 3, 1021, 2001, 2101, 3054 ...现在,我想将这些值放入一个哈希表中。整数的分布是这样的:每1000个区间均值,0-1000,1000-2000…最大值为2-3。
现在,在我的哈希表中,我简单地将存储桶编号设置为负载因子0.5。而哈希码很简单:整数%桶编号。然而,它会产生很多冲突。
有没有更好的方法来处理这种特殊的分布呢?
我有很多包含这样整数的文件。因此,设置固定存储桶编号是不可能的。
发布于 2013-08-03 17:34:15
@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}
https://stackoverflow.com/questions/18031059
复制相似问题