关于重写hashCode()和equals()方法的疑惑?

来源:6-2 学生选课---判断 Set 中课程是否存在

HYi12

2019-06-14 16:08

不是很理解重写的意思

在Course里只是自动生成了hashCode()和equals(),并没有改变其内部的代码,为什么就重写了呢?而且hashCode()和equals()的功能居然也改变了?这里应该怎样去理解呢

写回答 关注

2回答

  • 辣么厉害的银
    2019-06-26 01:05:00
    已采纳

    在每个类中,在重写 equals 方法的时侯,一定要重写 hashcode 方法。如果不这样做,你的类违反了hashCode的通用约定,这会阻止它在HashMap和HashSet这样的集合中正常工作。因为你之前已经重写过equals方法,所以就并不是说没变其内部的代码

    sanche...

    list就没有这样的问题是吗?

    2019-10-31 11:23:02

    共 1 条回复 >

  • weixin_慕慕1236053
    2019-07-27 00:38:18

    hashcode方法和equals方法重写后,在内部类中,优先执行重写的方法,

    内部代码不会改变,只是被覆盖了而已,可以重温重写那节课。

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题