为什么我可以添加重复数据

为什么我可以添加重复数据

public boolean equals(Object obj) {
		if (obj == this)
			return true;
		if (obj.getClass() == Student.class) {
			Student stu = (Student) obj;
			return (stu.getStuld() == stuld && (stu.getName()).equals(name));

		}
		return false;
	}

我的eq重写有什么问题吗,为什么我添加2个学号为3的william

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
Suwenxj1989 2018-03-06 22:35:52

你可以debugger看看,好像没有进到重写的equals方法,只进了hashCode方法

一叶知秋519 2017-11-06 17:04:17

你把hashCode中关于学号的那段代码去掉了吗?如果还有问题的话,建议你把全部代码贴出来,方便帮助你解答问题。祝学习愉快~

  • 为什么我debugger 走到set.add的时候只进去了重写的hashCode方法,没有进去重写的equals方法?
    2018-03-06 22:35:16
  • 我知道了,这个case工具自动添加的hashCode方法中 有一个Float.floatToIntBits(score); 所以float不相同直接就判断为不等了, 需要把默认的这行代码去了。
    2018-03-06 22:47:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师