校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > equals、hashCode()
题目

为什么重写equals时必须重写hashCode方法?

解答

hashCode 的作用是获取哈希码,也称为散列码,它实际上返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode定义在JDK的Object类中,这就意味着Java中的任何类都包含有hashCode函数。

如果两个对象相等,则hashcode一定也是相同的。两个对象相等,对两个对象分别调用equals方法都返回true。但是,两个对象有相同的hashcode值,它们也不一定是相等的。因此,equals方法被覆盖过,则hashCode方法也必须被覆盖。

hashCode的默认行为是对堆上的对象产生独特值。如果没有重写hashCode,则该class的两个对象无论如何都不会相等。(即使这两个对象指向相同的数据)

C 0条回复 评论

帖子还没人回复快来抢沙发