黑马程序员技术交流社区

标题: 使用自定义对象调用Collection#contains()方法出错! [打印本页]

作者: 何伟    时间: 2013-1-11 00:17
标题: 使用自定义对象调用Collection#contains()方法出错!
本帖最后由 张向辉 于 2013-1-22 12:51 编辑

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

作者: 黑马伍哲沂    时间: 2013-1-16 15:48
这样看有点云里雾里,当然也可能是我没学到的相关知识。

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


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

感谢解答啊
作者: 高浩    时间: 2013-1-21 22:11
contains 方法,你想一下他的功能就,是看容器是否包含该元素,给他一个对象,他会调用该对象的equals方法
去做比较,然而自定义对象他的equals方法是继承obejct类获得的,然而这个方法不能达到,比较目的,所以就要在该定义类中重写该方法,写成我们需要的那种比较方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2