问答详情
源自:6-2 学生选课---判断 Set 中课程是否存在

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

不是很理解重写的意思

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

提问者:HYi12 2019-06-14 16:08

个回答

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

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

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

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

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