java:放入Set中的对象一定要重写hashCode()和equals()吗?

 我来答
颂文公
2012-01-20 · 超过10用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:19.3万
展开全部
不需要
不过set里面的对象时不能重复的嘛,所以每加入一个对象都会与以存在的对象比较,若已经存在,则后来的就会被丢弃
如果你要自己定义怎么样才算相同对象就重写hashCode()和equals();要不然不需要重写
937726913
2012-01-20 · TA获得超过485个赞
知道小有建树答主
回答量:318
采纳率:100%
帮助的人:235万
展开全部
同意1楼,通常都会覆写这两个方法,主要是为了判断两个对象是否相等的,一个比较完整的类应该覆写toString()、hashCode()、equals()方法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
363937483
2012-01-20 · 超过11用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:33.4万
展开全部
重写equals之后是比较两个引用对象的值是否相等,所以一般有这方面比较的时候才会去重写它,而在重写equals的时候,建议你也重写hashCode,因为为了保证散列码的统一······不过一般的类都提倡重写这2类······
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
EvilProxy
2012-01-20 · TA获得超过294个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:264万
展开全部
不一定要重写,他会调用默认的equal确定是否是重复值
如果你的对象指定为id相同则重复,那你就需要重写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式