问答详情
源自:6-4 学生选课---判断 Map 中是否包含指定的 key 和 value

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

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

提问者:狗蛋蛋儿 2016-10-17 09:39

个回答

  • 慕盖茨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  这里说的还是比较清楚的