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

重写了euquals方法为什么还要重写hashcode?

解答

看到集合HashMap的底层源码的时候,自然就懂了

看看hashcode的定义:返回对象的哈希码值。支持此方法的好处是可以使用HashMap提供的散列表。

官方文档明确的说明了此方法的好处是可以使用HashMap提供的散列表。这是因为Map接口的类会使用到键对象的哈希码,当我们调用put方法时,就是根据对象的哈希码来计算存储位置的,因此必须提供对哈希码正确的保证。在java中,可以使用hashCode()这个方法来获取对象的哈希值。

public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
}

代码输出:

99162322
113318802

C 0条回复 评论

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