黑马程序员技术交流社区
标题:
Set里的元素区分问题
[打印本页]
作者:
唐溪永
时间:
2012-2-23 23:26
标题:
Set里的元素区分问题
Set里的元素是不能重复的,区分重复与否,我知道在比较时先调用hashCode方法,如果不相同,证明不相等。
如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。
但是可不可以用contains来区分是否有重复的对象?
详细的说一下
作者:
H07000223
时间:
2012-2-24 00:17
本帖最后由 H07000223 于 2012-2-24 00:21 编辑
contains(Object o)
Returns true if this set contains the specified element.=>如果set中包含了指定的元素则返回true
你能通过Set接口的实现类调用contains方法,就表示这个集合可以用了,也就意味着不存在重复元素了。
他只能判断存不存在的问题。
你想问的是不是某个元素是否重复添加过。。。
作者:
tanlei200620
时间:
2012-2-24 00:48
API文档:如果 set 包含指定的元素,则返回 true。更确切地讲,当且仅当 set 包含满足 (o==null ? e==null : o.equals(e)) 的元素 e 时返回 true
是先有元素的equals的实现,才有重复与否的判断。
还有hashCode方法不是每个 Set 都需要的
作者:
tanlei200620
时间:
2012-2-24 00:54
先调用hashCode方法 后调用equals 是对基于哈希算法的 set 里的判断方式,因为这样效率要高啊,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2