![]() |
1
4
乔舒亚·布洛克有一个很好的hashcode()。 Effective Java . 示例第3章,“所有对象通用的方法” 是 免费的(嗯,以前在Sun的旧网站上有一个页面是免费的)。如果你搜索的话,你可能仍然会在某个地方找到那一章的PDF版本)。 您还可以查看 HashCodeBuilder 在ApacheCommonsLang中,但是不要在没有引用的情况下为类复制它。我们花了很多时间来了解这一点——它会让你成为一个更好的人。 |
![]() |
2
2
虽然缺少标签,但我假设你在谈论Java。 一个“懒惰”的解决方案与Eclipse3.5打包在一起,它将在按下按钮时为您生成哈希代码。toString()和equals()。很不错的!我怀疑您可以在IDEA和NetBeans中找到类似的功能。 除此之外,对于相同的输入,几乎所有一致地生成相同值的哈希函数都可以做到。这可能只会影响哈希图之类的东西的效率。 |
![]() |
3
2
如果您是在为自定义类定义哈希代码方面谈的,最好是定义所有字段哈希代码函数的某种数学连接。 在定义散列代码时,您的目标通常是最小化冲突,因此如果您这样做,您通常会很清楚。
|
![]() |
4
1
如果您在Windows上,可以使用 HashData() . |
![]() |
5
1
这是一个散列代码组合函数,我使用(在C中):
直观的推理是组合方面是XOR运算符。这就是.NET 4如何处理元组:
|
![]() |
6
0
要回答什么会出错的问题:如果将函数生成的哈希代码放在哈希表(字典/映射)中,它将用于查找类实例的位置。如果散列函数生成的冲突太多,散列表的性能可能与O(N)一样差。 |
![]() |
7
0
在任何托管环境中,对象哈希函数的原始实现都是内存地址本身。如果您不关心哈希函数的属性,任何值都可以,只要表示相同值的不同实例之间存在某种等价关系。 如果您熟悉关系数据库设计,请考虑对象的主键?什么值构成主键?
说它是
^是xor(exclusive或)位操作,通过这种方式,您可以将任意数量的值链接在一起以形成哈希值,并且仍然保持一个合适的排列。 |
![]() |
Jahongir Rahmonov · 计算文件的校验和 6 年前 |
![]() |
Lev Knoblock · 类哈希函数 6 年前 |
![]() |
Sazzad Hissain Khan · 算法-在二维矩阵中搜索 6 年前 |
![]() |
Asur · 如何在PHP中同时使用多种算法对文件进行哈希? 6 年前 |
![]() |
OofYeetMcGee · 实现PBKDF2 7 年前 |
![]() |
yibs · 如何在Perl中计算csv中具有相同id的项目数 7 年前 |