什么时候需要重写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码是唯一的就可以了!!