A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张向辉 于 2013-1-22 12:51 编辑

大神解释下具体什么情况?为什么使用自定义对象调用Collection#contains()方法会出错!

评分

参与人数 1黑马币 +9 收起 理由
黄锦成 + 9

查看全部评分

4 个回复

倒序浏览
这样看有点云里雾里,当然也可能是我没学到的相关知识。

但个人建议还是附上相关代码。或对问题更详细点描述。

回复 使用道具 举报
contains内部使用到了元素的equals和hashcode方法。自定义对象中要重写hashcode方法和equals方法,如果保存在List集合中,只需要equals方法,保存在set中就要重写两个了。按照自己的比较内容来比较
回复 使用道具 举报
黄锦成 发表于 2013-1-21 00:13
contains内部使用到了元素的equals和hashcode方法。自定义对象中要重写hashcode方法和equals方法,如果保存 ...

感谢解答啊
回复 使用道具 举报
contains 方法,你想一下他的功能就,是看容器是否包含该元素,给他一个对象,他会调用该对象的equals方法
去做比较,然而自定义对象他的equals方法是继承obejct类获得的,然而这个方法不能达到,比较目的,所以就要在该定义类中重写该方法,写成我们需要的那种比较方法

评分

参与人数 1黑马币 +9 收起 理由
黄锦成 + 9

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马