java - 为对象生成唯一的 MD5 哈希值

标签 java hash unique md5 hashcode

我需要为对象生成唯一的哈希值,以识别具有相同属性的对象。

在阅读了有关该主题的一些内容后,我决定最好使用 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/

相关文章:

python - 如何在python中实现一个好的__hash__函数

arrays - 哈希表与排序数组 - 使用哪个?

mysql - ON DUPLICATE KEY 添加行

php - 如何使多个列在同一个表中唯一

java - 如何更改 JFrame 图标

java - 删除文件时 Jenkins SVN 插件失败(校验和不匹配)

bash - 查找唯一的文件

xml - XSD 架构引用完整性 xs :keyref

java - 加载较小版本的图像以提高 Android 性能

java - Android 应用程序在多次切换 fragment 时崩溃