hashcode相关内容

Java中的hashCode()是如何计算的

java中hashCode()方法返回什么值? 我读到它是一个对象的内存引用...new Integer(1) 的哈希值为 1;String("a") 的哈希值为 97. 我很困惑:它是 ASCII 还是什么类型的值? 解决方案 哈希码是一个整数值,表示调用它的对象的状态.这就是为什么设置为 1 的 Integer 将返回“1"的哈希码,因为 Integer's 哈希码和它的值 ..
发布时间:2021-11-25 20:40:46 Java开发

使用 JPA 和 Hibernate 时应如何实现 equals 和 hashcode

模型类的 equals 和 hashcode 应该如何在 Hibernate 中实现?常见的陷阱有哪些?对于大多数情况,默认实现是否足够好?使用业务密钥有什么意义吗? 在我看来,当考虑到延迟获取、id 生成、代理等时,很难在每种情况下都正确工作. 解决方案 Hibernate 对何时/如何覆盖 equals()/hashCode() 在 文档中 它的要点是您只需要担心您的实体是 ..
发布时间:2021-11-25 18:36:18 Java开发

Java中hashCode有什么用?

在 Java 中,obj.hashCode() 返回一些值.这个哈希码在编程中有什么用? 解决方案 hashCode() 用于Hash 实现中的bucketing,如HashMap、HashTable、HashSet 等 从hashCode() 收到的值用作桶号,用于存储集合/映射的元素.这个桶号是集合/映射中元素的地址. 当您执行 contains() 时,它将获取元素的哈希 ..
发布时间:2021-11-25 18:03:10 Java开发

良好的字符串散列函数

我正在尝试为字符串想出一个好的散列函数.我认为将字符串中前五个字符的 unicode 值相加可能是一个好主意(假设它有五个,否则在它结束的地方停止).这是个好主意还是坏主意? 我正在用 Java 做这件事,但我认为这不会有太大的不同. 解决方案 通常哈希不会求和,否则 stop 和 pots 将具有相同的哈希. 并且您不会将其限制为前 n 个字符,否则house 和houses ..
发布时间:2021-11-25 16:46:16 Java开发

如果 hashCode() 未被覆盖,对象的哈希码是什么?

如果没有覆盖 hashCode() 方法,那么在 Java 中对任何对象调用 hashCode() 的结果是什么? 解决方案 通常情况下,如果不覆盖 hashCode() 只会返回对象在内存中的地址. 来自 1: 在合理可行的情况下,类 Object 定义的 hashCode 方法确实为不同的对象返回不同的整数.(这通常是通过将对象的内部地址转换为整数来实现的,但是 JavaT ..
发布时间:2021-11-25 15:34:07 Java开发

Java中变量的内存地址

请看下面的图片.当我们使用 new 关键字在 java 中创建对象时,我们从操作系统获取内存地址. 当我们编写 out.println(objName) 时,我们可以看到一个“特殊"字符串作为输出.我的问题是: 这是什么输出? 如果是操作系统给我们的内存地址: a) 如何将此字符串转换为二进制? b) 如何获得一个整数变量地址? 解决方案 就是类名和Syste ..
发布时间:2021-11-25 14:53:58 Java开发

为什么在 hashCode 中使用质数?

我只是想知道为什么在类的 hashCode() 方法中使用素数?例如,当使用 Eclipse 生成我的 hashCode() 方法时,总是使用质数 31: public int hashCode() {最终 int 素数 = 31;//...} 参考: 这是我发现的关于 Hashcode 和散列如何工作的一篇很好的入门书(C#,但概念是可转移的):Eric Lippert 的 GetHa ..
发布时间:2021-11-25 13:35:25 Java开发

Java HashMap 如何处理具有相同哈希码的不同对象?

根据我的理解,我认为: 两个对象具有相同的哈希码是完全合法的. 如果两个对象相等(使用 equals() 方法),则它们具有相同的哈希码. 如果两个对象不相等,则它们不能具有相同的哈希码 我说得对吗? 现在如果我是对的,我有以下问题:HashMap 在内部使用对象的哈希码.那么如果两个对象可以有相同的哈希码,那么 HashMap 如何跟踪它使用的键? 谁能解释一下Has ..
发布时间:2021-11-25 11:50:04 Java开发

集合的 hashCode 方法的最佳实现

我们如何决定集合的 hashCode() 方法的最佳实现(假设 equals 方法已被正确覆盖)? 解决方案 最好的实现方式?这是一个很难回答的问题,因为这取决于使用模式. Josh Bloch 的 Effective Java 在第 8 项(第二版)中针对几乎所有情况提出了合理的良好实现.最好的办法是在那里查找,因为作者在那里解释了为什么这种方法是好的. 简短版本 创建 ..
发布时间:2021-11-25 11:39:51 Java开发

如何在 Java 中生成 MD5 哈希?

有没有什么方法可以在 Java 中生成字符串的 MD5 哈希值? 解决方案 您需要 java.security.MessageDigest. 调用 MessageDigest.getInstance("MD5") 以获得您可以使用的 MessageDigest 的 MD5 实例. 通过执行以下操作之一计算散列: 将整个输入作为 byte[] 馈送,并使用 md.diges ..
发布时间:2021-11-25 10:56:03 Java开发

为什么我需要覆盖 Java 中的 equals 和 hashCode 方法?

最近我通读了这个 开发者作品文档. 该文档是关于有效且正确地定义 hashCode() 和 equals(),但是我无法弄清楚为什么我们需要覆盖这两个方法. 我如何决定有效地实施这些方法? 解决方案 Joshua Bloch 谈 Effective Java 您必须在每个覆盖 equals() 的类中覆盖 hashCode().不这样做将导致违反 Object.hashC ..
发布时间:2021-11-25 10:13:40 Java开发

在 Java 中重写 equals 和 hashCode 时应该考虑哪些问题?

在覆盖 equals 和 hashCode 时必须考虑哪些问题/陷阱? 解决方案 理论(适用于语言律师和数学爱好者): equals() (javadoc) 必须定义一个等价关系(它必须是自反、对称和传递em>).此外,它必须一致(如果对象没有被修改,那么它必须保持返回相同的值).此外,o.equals(null) 必须始终返回 false. hashCode() (javad ..
发布时间:2021-11-25 10:07:34 Java开发

为什么我需要覆盖 Java 中的 equals 和 hashCode 方法?

最近我通读了这个 开发者作品文档. 该文档是关于有效且正确地定义 hashCode() 和 equals(),但是我无法弄清楚为什么我们需要覆盖这两个方法. 我如何决定有效地实施这些方法? 解决方案 Joshua Bloch 谈 Effective Java 您必须在每个覆盖 equals() 的类中覆盖 hashCode().不这样做将导致违反 Object.hashC ..
发布时间:2021-11-22 14:51:47 Java开发

在 Java 中重写 equals 和 hashCode 时应该考虑哪些问题?

在覆盖 equals 和 hashCode 时必须考虑哪些问题/陷阱? 解决方案 理论(适用于语言律师和数学爱好者): equals() (javadoc) 必须定义一个等价关系(它必须是自反、对称和传递em>).此外,它必须一致(如果对象没有被修改,那么它必须保持返回相同的值).此外,o.equals(null) 必须始终返回 false. hashCode() (javad ..
发布时间:2021-11-22 14:47:01 Java开发

Java HashMap 如何处理具有相同哈希码的不同对象?

根据我的理解,我认为: 两个对象具有相同的哈希码是完全合法的. 如果两个对象相等(使用 equals() 方法),则它们具有相同的哈希码. 如果两个对象不相等,则它们不能具有相同的哈希码 我说得对吗? 现在如果我是对的,我有以下问题:HashMap 在内部使用对象的哈希码.那么如果两个对象可以有相同的哈希码,那么 HashMap 如何跟踪它使用的键? 谁能解释一下Has ..
发布时间:2021-11-19 22:52:44 Java开发

集合的 hashCode 方法的最佳实现

我们如何决定集合的 hashCode() 方法的最佳实现(假设 equals 方法已被正确覆盖)? 解决方案 最好的实现方式?这是一个很难回答的问题,因为这取决于使用模式. Josh Bloch 的 Effective Java 在第 8 项(第二版)中针对几乎所有情况提出了合理的良好实现.最好的办法是在那里查找,因为作者在那里解释了为什么这种方法是好的. 简短版本 创建 ..
发布时间:2021-11-19 22:49:34 Java开发

如何在 Java 中生成 MD5 哈希?

有没有什么方法可以在 Java 中生成字符串的 MD5 哈希值? 解决方案 您需要 java.security.MessageDigest. 调用 MessageDigest.getInstance("MD5") 以获得您可以使用的 MessageDigest 的 MD5 实例. 通过执行以下操作之一计算散列: 将整个输入作为 byte[] 馈送,并使用 md.diges ..
发布时间:2021-11-19 22:37:12 Java开发

为什么我需要覆盖 Java 中的 equals 和 hashCode 方法?

最近我通读了这个 开发者作品文档. 该文档是关于有效且正确地定义 hashCode() 和 equals(),但是我无法弄清楚为什么我们需要覆盖这两个方法. 我如何决定有效地实施这些方法? 解决方案 Joshua Bloch 谈 Effective Java 您必须在每个覆盖 equals() 的类中覆盖 hashCode().不这样做将导致违反 Object.hashC ..
发布时间:2021-11-19 22:25:46 Java开发