阅读量:0
要重写hashCode()
方法,需要遵循以下几个步骤:
- 在类中添加
hashCode()
方法的声明,返回类型为int
。 - 在
hashCode()
方法中计算一个唯一的整数值,用于表示对象的哈希码。可以根据对象中的属性值计算哈希码。 - 确保如果两个对象在
equals()
方法中被判定为相等,那么它们的hashCode()
方法也应该返回相等的哈希码。 - 如果需要,可以使用Java中的
Objects
类中的hash()
方法来计算哈希码。
下面是一个示例,展示了如何重写hashCode()
方法:
public class Person { private String name; private int age; // 构造函数和其他方法... // 重写hashCode()方法 @Override public int hashCode() { return Objects.hash(name, age); } // 重写equals()方法 @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Person person = (Person) obj; return age == person.age && Objects.equals(name, person.name); } }
在上面的示例中,hashCode()
方法使用了Objects.hash()
方法来计算哈希码。这个方法会根据传入的参数自动计算哈希码。在这个例子中,我们使用了name
和age
属性来计算哈希码,这两个属性也在equals()
方法中被使用。
注意:重写hashCode()
方法的同时,一定要重写equals()
方法,以确保对象在哈希集合(如HashSet
)中的正确行为。