![]() |
1
24
我认为不存在非平凡的哈希代码。还有,你的
为了完整起见,我向您介绍 Skeet - Niko 证明=) 宣称 hashcode必须是平凡常量函数。
证据
|
![]() |
2
9
(a,b),(a,c),b=c、 然后散列(a,b)!=hash(a,c),eventhough(a,b)=(a,c)。 类似地,(b,a)和(c,a)必须发出相同的哈希代码。
对于所有x,y,v,w,h(x,y)=h(x,w)=h(v,w)。 因此,唯一一个执行所需操作的hashFunction是常量。 |
![]() |
3
6
我很确定Zach是对的——没有非平凡的哈希代码可以做到这一点。 伪证明:
现在考虑Z=(ID2,NAME1)。这等于X和Y,因此必须具有与X和Y相同的哈希代码。因此X和Y必须具有相同的哈希代码-这意味着 全部的 你陷入一种奇怪的境地是有原因的——你打破了平等的传递性。X等于(Z)和Z等于(Y)的事实 意味着X等于(Y)-但它不是。你对平等的定义不适用于一般的平等契约。 |
![]() |
4
2
我想你不能。原因是,你的
传递性是指三个非空的x,y,z,if
回到散列函数:每个函数产生一个由
|
![]() |
5
2
如果您的意思是“AND”,那么您的hashcode应该使用与equals()相同或更少的字段(但绝不使用equals未使用的字段)进行计算。
|
![]() |
6
0
编辑:我没有仔细阅读这个问题。 -- 我将使用commons lang jar。 XOR成员哈希代码应该可以工作。因为它们应该正确地实现hashCode()和equals()。 但是,如果不保护哈希代码,代码可能会出错。
或
或
|
![]() |
7
0
当其中一个字段被更新时,您可以自动完成另一个字段。
编辑:我的代码可能比我的英语更好。
编辑2:
如果您确实想要一个执行部分相等的方法,请创建自己的名为“partialEquals()”的API。 |
![]() |
8
-1
|
![]() |
9
-1
这个怎么样
函数应该始终返回一个“有效”哈希。。。 编辑:刚刚注意到你使用了“或”不“和”:P哦,我怀疑这个问题是否有好的解决方案。。。 |
![]() |
10
-2
怎么样
|
|
synthax · 具有容差级别的双精度哈希方法 7 年前 |
![]() |
Relaxsingh · 附加导师程序无法正常工作***阅读说明*** 7 年前 |
|
user8589267 · 我的equals方法有什么问题? 7 年前 |
![]() |
James W. · 带有通配符的java黑名单 7 年前 |