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

关于hashcode()的问题

老师说重写这个函数是为了比较courses里面的name和输入的name的哈希值是否相同,但是这两个是不同对象中的name,哈希值怎么会相同呢?

提问者:透明麻瓜君 2015-12-06 23:04

个回答

  • qq电子时代
    2016-04-11 09:30:46

    本来HashSet下的contains()方法是比较student.courses下对象的哈希码与course2的哈希码是否一样,这当然是不一样的所以返回的是false。

    而重写之后,是比较student.courses下对象name的哈希码与course2.name的哈希码是否一样,它们是一样的,所以返回的是true。

  • Uestc_L
    2016-02-28 10:21:26

    是比较对象的哈希吗是否相同,对象的哈希码相同然后在用equals方法

  • 阳光下的空气
    2015-12-06 23:38:33

    哈希值是固定的

    主要name的值一样,哈希值就一样