课程
/后端开发
/Java
/Java入门第三季
老师说重写这个函数是为了比较courses里面的name和输入的name的哈希值是否相同,但是这两个是不同对象中的name,哈希值怎么会相同呢?
2015-12-06
源自:Java入门第三季 6-2
正在回答
本来HashSet下的contains()方法是比较student.courses下对象的哈希码与course2的哈希码是否一样,这当然是不一样的所以返回的是false。
而重写之后,是比较student.courses下对象name的哈希码与course2.name的哈希码是否一样,它们是一样的,所以返回的是true。
是比较对象的哈希吗是否相同,对象的哈希码相同然后在用equals方法
哈希值是固定的
主要name的值一样,哈希值就一样
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答hashcode问题
2 回答关于输出结果是hashcode
2 回答关于重写hashCode()和equals()方法的疑惑?
1 回答equals和hashCode重写问题
1 回答hashcode方法重写的疑问