资讯专栏INFORMATION COLUMN

java重写equals及hashcode方法

source / 254人阅读

摘要:序本文介绍一下几种重写和的方法。规则如果两个对象相等的话,它们的必须相等但如果两个对象的相等的话,这两个对象不一定相等。方法使用的注解比如使用的方法如果仅仅是根据所有字段来生成,则可以使用方法方法自带的有个方法来根据字段生成

本文介绍一下几种重写equals和hashcode的方法。

规则

如果两个对象相等的话,它们的hash code必须相等;

但如果两个对象的hash code相等的话,这两个对象不一定相等。

方法 使用lombok的注解

lombok-1.16.16.jar!/lombok/EqualsAndHashCode.class
比如

@ToString
@EqualsAndHashCode
public class XXXDto {

}
使用apache的方法
    @Override
    public boolean equals(Object o) {
        return EqualsBuilder.reflectionEquals(this,o);
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

如果仅仅是根据所有字段来生成,则可以使用reflection方法

Objects方法

java自带的Objects有个hashcode方法来根据字段生成

Objects.hash(mobile,name);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67652.html

相关文章

  • Java equals 和 == 完全解析

    摘要:所以在对象没有重写这个方法时,默认使用此方法,即比较对象的内存地址值。结果为可以发现不管对象的内存地址是否相同并不影响其结果,所以类型比较的是数据值而不是内存地址值。 showImg(https://segmentfault.com/img/bVbqpku?w=800&h=344); 今天朋友突然问到一个问题: 两个对象使用x.equals(y)判断结果为true时,两个对象的hash...

    mikasa 评论0 收藏0
  • 谈谈java中几种常见的散列算法解决哈希碰撞的方式

    摘要:接下来分析几个常见的实现方式。再哈希法再哈希法,就是出现冲突后采用其他的哈希函数计算,直到不再冲突为止。,其中为不同的哈希函数。 由表及里,循序渐进,请往下看。随手点赞是对作者最大的鼓励!^0^。 什么是哈希表 引用:严蔚敏 《数据结构(C语言版)》中的内容 showImg(https://segmentfault.com/img/bVZlmE?w=800&h=364); 哈希表就是 ...

    沈建明 评论0 收藏0
  • 【金三银四】面试题之java基础

    摘要:中,任何未处理的受检查异常强制在子句中声明。运行时多态是面向对象最精髓的东西,要实现运行时多态需要方法重写子类继承父类并重写父类中已 1、简述Java程序编译和运行的过程:答:① Java编译程序将Java源程序翻译为JVM可执行代码--字节码,创建完源文件之后,程序会先被编译成 .class 文件。② 在编译好的java程序得到.class文件后,使用命令java 运行这个 .c...

    Yangyang 评论0 收藏0
  • 【金三银四】面试题之java基础

    摘要:中,任何未处理的受检查异常强制在子句中声明。运行时多态是面向对象最精髓的东西,要实现运行时多态需要方法重写子类继承父类并重写父类中已 1、简述Java程序编译和运行的过程:答:① Java编译程序将Java源程序翻译为JVM可执行代码--字节码,创建完源文件之后,程序会先被编译成 .class 文件。② 在编译好的java程序得到.class文件后,使用命令java 运行这个 .c...

    Barrior 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<