讲解一下java重写hashcode的方法
时间: 2023-11-04 10:08:55 浏览: 128
浅谈Java中的hashcode方法
在Java中,Object类提供了默认的hashCode()方法,该方法返回对象的哈希码。但是,如果我们需要比较自定义类型的对象,我们需要重写hashCode()方法。
重写hashCode()方法的步骤如下:
1.确定哪些字段需要用于生成哈希码。
2.根据选择的字段计算哈希码。可以使用Objects.hash()方法或手动计算哈希码。
3.将计算出的哈希码返回。
以下是一个示例:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
```
在这个示例中,我们使用了Objects.hash()方法来计算哈希码,并将name和age字段作为参数传递给该方法。如果我们想手动计算哈希码,可以使用以下代码:
```java
@Override
public int hashCode() {
int result = 17;
result = 31 * result + name.hashCode();
result = 31 * result + age;
return result;
}
```
在这个示例中,我们使用了31这个质数来计算哈希码,并将结果与每个字段的哈希码相乘并相加。最后,我们返回计算出的哈希码。
阅读全文