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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wawsc5354524 中级黑马   /  2014-8-7 01:23  /  1642 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wawsc5354524 于 2014-8-8 00:30 编辑

Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

10 个回复

倒序浏览
如果可以的话,请举例说明,详细一点,谢谢了
回复 使用道具 举报
他里边都不可能有重复的咯,还比较干什么= =
回复 使用道具 举报
哦 理会错误了,你是问他是怎么区分的是吧?  HASHSET是用HASHCODE和EQUALS来区分他们是否相等,TREESET是用的COMPARETO方法来区分的。他们不一样是因为他们的数据结构不同导致的。
回复 使用道具 举报
存储自定义对象可以重复,我倒是会去除重复
回复 使用道具 举报
具体还是看看老毕的视频吧,里面很详细了或者等下面的回答吧。
回复 使用道具 举报
楼上正解
回复 使用道具 举报
215041631 发表于 2014-8-7 01:29
具体还是看看老毕的视频吧,里面很详细了或者等下面的回答吧。

好的哈,知道了,么么哒
回复 使用道具 举报
215041631 发表于 2014-8-7 01:28
哦 理会错误了,你是问他是怎么区分的是吧?  HASHSET是用HASHCODE和EQUALS来区分他们是否相等,TREESET是 ...

TreeSet用compareTo()来确定存进去的元素的顺序,而不是用来区分它们是否相同,区分是否相同还得用equals()方法。
回复 使用道具 举报
  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:23 编辑
黎志勇 发表于 2014-8-8 01:53
TreeSet用compareTo()来确定存进去的元素的顺序,而不是用来区分它们是否相同,区分是否相同还得用equals ...


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