为了账号安全,请及时绑定邮箱和手机立即绑定

重写equals的问题

在重新Student的equals时,如果只选择name  就可以正确的使用containsValue.

但是如果在重写equals时,选择了  id 和name.  就和没重写的时候一样,查询name的时候就会显示不存在.请问这是什么原因.

正在回答

3 回答

https://img1.sycdn.imooc.com//5b051a1e0001596103960275.jpg你可以点开重写了(id和name)的equals方法时,当比较value时的比较的是Student(null,name),此时的id为null,所以返回的是false

0 回复 有任何疑惑可以回复我~
#1

慕UI1804229

也就是说你把我画红线的这一段注释掉就可以执行了
2018-05-23 回复 有任何疑惑可以回复我~
#2

学习为致及 提问者

太久远了.问题都快忘了.不过还是采纳吧
2018-06-14 回复 有任何疑惑可以回复我~

个人理解是重写了id和name后,输入的小红理解为(null,小红)

而映射表中的小红是(2,小红)


1 回复 有任何疑惑可以回复我~

查询的时候要放入id吧?你看下重写的equals是不是同时比较了id和name(我也没试过)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

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

进入课程

重写equals的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信