containsKey的对象比对问题

weixin_48086954 2020-10-12 06:50:32
我添加编号和名字,有一个不同就不能添加,用的containsKey比较,我也重写equals和hashcode方法了,我还问了几个朋友,都感觉没啥问题,是我还不太懂containsKey吗,有大佬遇到过,有懂的吗



...全文
4545 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
睡不醒的ZWW 2020-10-14
  • 打赏
  • 举报
回复
equals和hashcode有这样一个规则 如果equals返回true那么他们的hashcode也一定相同
qybao 2020-10-13
  • 打赏
  • 举报
回复
要么就把equals改成&&,||肯定和hashcode是矛盾的
qybao 2020-10-13
  • 打赏
  • 举报
回复
hashcode有问题,id相同name不同,哈希值不同,但equals却相同
Crazy Code Farmer 2020-10-13
  • 打赏
  • 举报
回复
另外也没看到你重写 Map集合的相关方法 。 一般是重写自己定义的类的ToString() equals hashcode。例如jdk自带的ToString()你查看java源码也能发现系统已重写。
Crazy Code Farmer 2020-10-13
  • 打赏
  • 举报
回复
Map类型的集合是这样的 (该集合中key是不允许重复的,而且一个key只能对应一个value。) 附加:(HashMap中value都可以是 null,key只允许一个null;
百事可乐_ 2020-10-13
  • 打赏
  • 举报
回复
你的代码逻辑里 hashcode是两个属性都一样 code值才一样 equals方法是两个属性任意一个一样就返回true 这俩逻辑有问题
XGrscM 2020-10-12
  • 打赏
  • 举报
回复
Map:你重写的是Object的方法,跟我Map有啥关系

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧