java - Java中具有相同属性值的不同对象可以具有相同的哈希码吗

标签 java hashcode

我是 Java 新手,我有一个关于 Java 对象的哈希码的问题:

public class HelloWorld
{
  String name;
  int age;
}

具有相同属性值的不同对象是否具有相同的 hashCode?

HelloWorld hello1 = new HelloWorld();
hello1.name = "hello";
hello1.age = 20;

HelloWorld hello2 = new HelloWorld();
hello2.name = "hello";
hello2.age = 20;

hello1hello2有相同的 hashCode 吗?

此外,具有不同属性值的对象是否可能具有相同的 hashCode?

最佳答案

您尚未重写 hashCode() 方法,因此 hashCode 本质上是随机的,因此对于两个不同的对象来说,hashCode 可能相同也可能不同,无论其字段值如何。但获得相同 hashCode 的概率非常低。

关于java - Java中具有相同属性值的不同对象可以具有相同的哈希码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52094700/

相关文章:

Java JPEG 压缩会增加文件大小

java - 如何反转 Java 中字符串的大小写?

java - 编译器或 JVM 是否强制执行 hashCode/equals 约定?

java - 为什么我从字符串中得到错误的 HashCode?

java - 同一映射的自定义哈希码和比较器?

JavaFX:绘制无限符号并向前移动

java - Android RecyclerView 未附加适配器,跳过布局

java - setAutocommit(true) 进一步解释

c# - (x, y).GetHashCode() 如何在幕后工作?

java - 如何计算 Java 中字符串列表中的冲突次数