containsValue方法为啥要重写equals方法啊?单独重写hashcode方法不行吗?

来源:6-4 学生选课---判断 Map 中是否包含指定的 key 和 value

狗蛋蛋儿

2016-10-17 09:39

为什么非得重写equals方法啊?equals方法本身不就是比较两个字符是否相等的吗?这一节里面“小红”不相等我暂且理解成他们的hascode方法返回的哈西码不等,为什么还要重写equals方法?希望明白的人给个解释,谢谢!

写回答 关注

2回答

  • 慕盖茨3498344
    2016-11-02 19:03:24

    因为value存储的的是Students,他新建的是一个(null,小红)这样的对象,和map里面存储的(2,小红)这个对象是不相等的。重新equals方法之后,只比较name这个值,所以两个类就相等了。

  • 和路雪长子
    2016-10-17 17:40:27

    http://www.cnblogs.com/skywang12345/p/3324958.html  这里说的还是比较清楚的

Java入门第三季

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

409784 学习 · 4339 问题

查看课程

相似问题