js css html

java hashcode为啥需要重写在重写equals方法下

2022-06-08  本文已影响0人  在岁月中远行

1 编程中经常会用到HashMap,HashSet数据结构。

2 这个数据结构都是由键值对组成的,如果键值对是对象,那么程序会根据对象返回的hashCode来确定值所在的位置。

3 我们通常认为两个相同内容的对象是相等的,并通过重写equals方法来达到目的。

4 由于对象默认返回hashcode是对象的地址值,当我们把上面相等的对象作为HashMap的键时候,会发现程序会定位到两个不同的位置的值,这种结果是不合适的。

5 这也就是为什么在重写equals方法的时候,往往需要重写hashCode,让相等的对象返回相同的hashCode的原因。

上一篇下一篇

猜你喜欢

热点阅读