我需要为对象生成唯一的哈希值,以标识具有相同确切属性的对象。
在阅读了有关该主题的内容后,我决定最好使用MD5哈希而不是java hashCode(我有大量对象,大约200,000-300,000)。
我找到了许多关于如何对字符串进行MD5哈希处理的示例,但没有找到如何对对象进行哈希处理,因此根据对象的属性,它实际上是唯一的。
答案 0 :(得分:1)
对象的哈希码不需要唯一。顺便说一句,不可能
哈希码必须遵守以下合同:
Object::equals
两个对象相等,则hashCode
应该返回相同的对象。大多数IDE都可以生成方法hashCode()
,但是即使在JDK中也有一些工具可以生成哈希码,例如。 java.util.Objects.hash(Object...)
。
您可以阅读精彩的摘要here