黑马程序员技术交流社区

标题: 求解求解?速速来帮忙 [打印本页]

作者: wawsc5354524    时间: 2014-8-7 01:23
标题: 求解求解?速速来帮忙
本帖最后由 wawsc5354524 于 2014-8-8 00:30 编辑

Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
作者: wawsc5354524    时间: 2014-8-7 01:25
如果可以的话,请举例说明,详细一点,谢谢了
作者: 215041631    时间: 2014-8-7 01:25
他里边都不可能有重复的咯,还比较干什么= =
作者: 215041631    时间: 2014-8-7 01:28
哦 理会错误了,你是问他是怎么区分的是吧?  HASHSET是用HASHCODE和EQUALS来区分他们是否相等,TREESET是用的COMPARETO方法来区分的。他们不一样是因为他们的数据结构不同导致的。
作者: 阿苏勒    时间: 2014-8-7 01:29
存储自定义对象可以重复,我倒是会去除重复
作者: 215041631    时间: 2014-8-7 01:29
具体还是看看老毕的视频吧,里面很详细了或者等下面的回答吧。
作者: cheye0207    时间: 2014-8-7 01:29
楼上正解
作者: wawsc5354524    时间: 2014-8-8 00:21
215041631 发表于 2014-8-7 01:29
具体还是看看老毕的视频吧,里面很详细了或者等下面的回答吧。

好的哈,知道了,么么哒
作者: 黎志勇    时间: 2014-8-8 01:53
215041631 发表于 2014-8-7 01:28
哦 理会错误了,你是问他是怎么区分的是吧?  HASHSET是用HASHCODE和EQUALS来区分他们是否相等,TREESET是 ...

TreeSet用compareTo()来确定存进去的元素的顺序,而不是用来区分它们是否相同,区分是否相同还得用equals()方法。
作者: xbz1986    时间: 2014-8-8 08:40
  Set具有与Collection完全一样的接口,因此没有任何额外的功能,不像前面有两个不同的List。实际上Set就是Collection,只是行为不同。(这是继承与多态思想的典型应用:表现不同的行为。)Set不保存重复的元素(至于如何判断元素相同则较为负责)
    Set : 存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。
    HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。
    TreeSet : 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。
    LinkedHashSet : 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
作者: 215041631    时间: 2014-8-14 22:20
本帖最后由 215041631 于 2014-8-14 22:23 编辑
黎志勇 发表于 2014-8-8 01:53
TreeSet用compareTo()来确定存进去的元素的顺序,而不是用来区分它们是否相同,区分是否相同还得用equals ...


。。。。是。。。




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