重写equals和hashCode
程序员文章站
2024-03-22 17:46:46
...
重写equals和hashCode
比较两个对象的内容是否相同,内容一致则返回true,否则返回false。
比较对象的内容,需要重写父类Object类中的equals()方法。
重写equals的5个步骤
- 自反性(比较两个引用是否指向同一个对象)
- 判断o是否为null
- 判断两个引用指向的实际对象类型是否一致
- 强制类型转换
- 依次比较各个属性值是否相同(基本数据类型用“==”比较,引用数据类型用equals()方法比较)
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Students students = (Students) o;
if (age != students.age)
return false;
return this.num == students.num;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + age;
return result;
}