为了账号安全,请及时绑定邮箱和手机立即绑定

老师最后讲的好快啊,为什么上一节不用重写hashCode方法,这一节就需要了呢?

正在回答

2 回答

详细的可以去看HashMap的contains实现,那里是equals和hashCode两个同时使用了,所以在有Map的时候,必须两个都要验证。HashSet也验证两个。但是在ArrayList里不验证hashCode,所以你不重写hashCode也无所谓。

equals和hashcode方法要同时重写,并且要在equals为true的时候,hashCode必须要相同。这个已经是一种不成文的规定了,这两个方法要重写就要一起重写,而且IDE里也会将只重写一个视为警告。所以这两个方法要同时重写。


0 回复 有任何疑惑可以回复我~

哥呀两节讲的都不是一个内容的,上一节是list,这节是set,能一样吗。。。视频中也讲到了,为什么要重写hashCode,请哥再仔细看下视频讲解

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409787    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程
意见反馈 帮助中心 APP下载
官方微信