我需要为对象生成唯一的哈希值,以识别具有相同属性的对象。
在阅读了有关该主题的一些内容后,我决定最好使用 MD5 哈希而不是 java hashCode(我有大量对象,大约 200,000-300,000)。
我找到了很多关于如何对字符串进行 MD5 哈希处理的示例,但没有找到如何对对象进行 MD5 哈希处理,以便根据对象的属性,它确实是唯一的。
最佳答案
对象的哈希码不需要是唯一的。顺便说一句这是不可能的
哈希码必须符合以下约定:
- 每次在相同状态下的同一对象上调用它时,它都应该返回相同的值。
- 如果根据
Object::equals
两个对象相等,则hashCode
应返回相同的值。
大多数 IDE 都可以生成方法 hashCode()
,但甚至在 JDK 中也有一些工具可以生成 hashcode,例如。 java.util.Objects.hash(Object...)
.
您可以阅读精彩的摘要here
关于java - 为对象生成唯一的 MD5 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57140274/