为了账号安全,请及时绑定邮箱和手机立即绑定

谈谈equals和hashcode的重写要点和代码讲解

标签:
Java

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必须生成不同的整数结果

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
10
获赞与收藏
14

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消