Java:对象的哈希函数

标签 java hash

我正在考虑用于任意 Java 对象的哈希函数作为练习方法。天真的方法是为每个属性调用 hashCode() 函数,添加这些散列,然后取最大散列值模的总和,或类似的方法。但是,这意味着,只要更改其中一个属性,散列值就会更改,因此如果要将对象存储在散列表中,则不能使用此方法。一个对象的散列码应该代表它的身份。但是我怎样才能将这个抽象的身份表示为一个整数值呢?也许通过使用对象地址(假设 Java 在运行时不会在内存中移动对象),但是 Java 有没有办法获取对象地址?

您将如何实现这样的哈希函数?

提前致谢。

最佳答案

我认为Effective Java's chapter关于所有对象通用的方法是一个很好的资源。

关于Java:对象的哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422998/

相关文章:

java - 如何在 CXF 中使用转换删除入站 XML 元素?

javascript - 使用箭头在我的画廊中导航时更改 URL 中的哈希值 (jQuery)

python - 是否可以通过 django 管理面板动态添加新字段

Java 哈希码和桶大小 - 关系

perl - 自动调用作为子程序引用的哈希值

java - 在 gridview 中缩放 imageview 时的空白

java - Android - 扩展 ViewGroup 而不是添加 fragment 显示为空白

java - jackson 无法反序列化空数组

javascript - url 中没有哈希值的回家路线...backbone.js?

java - 框架中的标签(Eclipse)