什么时候需要重写equals和hashCode方法?
据个例子有一个对象Person
两个Person怎么才能算是相等呢?我们自定义如果Person 的name相同,并且性别、年龄都一致就认为是相等的。
class Person{
String name;
String sex;
int age;
}
Person p1 = new Person();
Person p2 = new Person();
if(p1.equals(p2)){
.....
}
这个时候就要重写Person的equals方法
public boolean equals(Object){
String name = ((Person)Object).getName();
String sex = ((Person)Object).getSex();
int age = ((Person)Object).getAge();
if(this.name.equals(name)&&this.sex.equals(sex)&&this.age == age)
return true;
return false;
}
重写了equals方法之后,必须重写hashCode方法
hashCode方法如何重写?
我觉着只要保证每一个对象的hashCode码是唯一的就可以了!!
本文讲解了在Java中何时及如何重写equals方法和hashCode方法。通过一个Person类的例子,详细解释了重写equals方法的必要性以及为保持一致性重写hashCode方法的原因。
766

被折叠的 条评论
为什么被折叠?



