ITPub博客

首页 > IT职业 > IT图书 > 重写equals()方法必须要重写hashCode()方法?

重写equals()方法必须要重写hashCode()方法?

IT图书 作者:skylar 时间:2021-09-09 09:03:36 0 删除 编辑
==

“==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。

equals

equals()方法定义在Object类里面,根据具体的业务逻辑来定义该方法,用于检查两个对象的相等性。默认的equals方法实现是与“==”操作一样的

hashCode

hashCode()方法被用来获取给定对象的唯一整数。默认的Object类的hashCode()方法返回这个对象存储的内存地址的编号。

结论
    尽量保证使用对象的同一个属性来生成hashCode()和equals()两个方法。

    eqauls方法必须保证一致(如果对象没有被修改,equals应该返回相同的值)

    任何时候只要a.equals(b),那么a.hashCode()必须和b.hashCode()相等。

    两者必须同时重写。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4648/viewspace-2798998/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-13

  • 博文量
    83
  • 访问量
    768