在一个student类中,重写hashcode()和equals()的方法,hashcode()的返回值是name的哈希值与age的和
时间: 2024-02-03 18:11:22 浏览: 67
重写hashCode()和equals()方法详细介绍
5星 · 资源好评率100%
好的,下面是一个示例代码:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
return name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Student other = (Student) obj;
return name.equals(other.name) && age == other.age;
}
}
```
在上面的代码中,我们重写了`hashCode()`和`equals()`方法。`hashCode()`方法的返回值是`name`的哈希值与`age`的和,这是一种常见的计算哈希值的方法。`equals()`方法则比较了两个`Student`对象的`name`和`age`是否相等。
需要注意的是,当重写`equals()`方法时,我们还要重写`hashCode()`方法,以保证两个相等的对象返回相同的哈希值。
阅读全文