- 都是Object类的方法,equals比较的是地址值,hashCode是根据地址计算出的整数
- 重写equals方法时,一定要重写hashCode方法,因为在(基于散列列的,待确定)集合中判断对象是否相等时:会先判断hash值,hash值不同,则会认为对象不相等,hash值相同,在根据equals方法比较,equals判断相同,则对象相等,否则判断对象不同。
注意:
如果x.equals(y)返回“true”,那么x和y的hashCode()必须相等。
如果x.equals(y)返回“false”,那么x和y的hashCode()有可能相等,也有可能不等。
equals()和hashCode()
最新推荐文章于 2024-11-04 22:26:34 发布