我有以下课程:
public class Foo
{
int year;
string name;
int category;
}
以下是一些示例数据:
2012 Test1 1000
2012 Test2 1000
2012 Test3 1000
2012 Test4 1000
2012 Test4 10
...
如果我覆盖 GetHashCode 所有结果都非常相似:
return year ^ name ^ category;
int hash = 13;
hash = hash * 33 + year.GetHashCode();
hash = hash * 33 + name.GetHashCode();
hash = hash * 33 + category.GetHashCode();
return hash;
对于这种情况,什么是好的散列函数(具有最大分布)?
编辑: 也许我对哈希桶的理解是错误的。将相似的哈希值放到同一个桶中?
"Test1".GetHashCode() --> -1556460260
"Test2".GetHashCode() --> -1556460257