手记

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

==

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

equals

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

hashCode

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

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

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

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

    两者必须同时重写。
0人推荐
随时随地看视频
慕课网APP