equals方法的重写,一般是因为原有的equals方法无法满足我们所要比较的对象
原有的equals方法:
public boolean equals(Object object) {
if (object == this) {
return true;
}
return false;
}equals方法重写的要求:
1.object不为空,用==比较
2.object的对象来自类(重写equals的类),用instanceof来比较
3.匹配属性
当然equals还有更详细的要求,可以看看JAVA编程思想
public class Equals {
int x;
int y;
public boolean equals(Object object) {
if (object == null) {
return false;
}
if (object instanceof Equals) {//判断object类型
Equals o=(Equals)object;//强制类型转换,可能object是子类
return o.x == this.x&&o.y == this.y;//匹配属性
}
return false;
}
}Hashcode方法重写要求:
1.对同一对象多次调用,返回相同的整数,前提是将对象进行equals比较时所用信息没有被修改.
2.两个对象相同,调用Hashcode必须生成相同的整数结果
3.两个对象不相同,调用hashcode必须生成不同的整数结果
本文介绍了在Java中如何正确地重写equals方法和hashCode方法。equals方法用于判断两个对象是否相等,hashCode方法则与equals方法紧密相关,用于生成散列码。重写时需确保如果两个对象相等,则它们的散列码也必须相等。
1976

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



