![]() |
1
16
如果您的对象是可变的,那么可以接受它的哈希代码随着时间的推移而改变。当然,您应该更喜欢不可变对象( 有效Java第2版,第15项:最小化可变性
这是乔希·布洛赫的哈希代码配方,来自
有效Java第2版,第9项:始终覆盖
有效的Java第二版哈希代码配方
即使只有一个字段,照着配方来做也是正确的。只需根据字段的类型执行适当的操作。
这些库允许您简单地编写如下内容:
Apache Commons语言示例
下面是一个更完整的示例,使用apachecommons Lang中的构建器来简化一个方便且可读的
众所周知,这四种方法的编写非常繁琐,而且很难确保所有契约都得到遵守,但幸运的是,库至少可以帮助简化这项工作。一些ide(例如Eclipse)也可以自动为您生成其中的一些方法。 另请参见
|
![]() |
2
2
如果您希望具有不同id的对象由该id标识,那么您所需要做的就是返回/比较它。
|
![]() |
3
1
但和你一起工作很重要 . 如果A等于B,则它们的哈希码必须相同。
|
![]() |
redcodefinal · 用另一个整数哈希一个整数[closed] 10 年前 |