黑马程序员技术交流社区

标题: set疑问 [打印本页]

作者: 心是你仰望的城    时间: 2014-3-5 11:02
标题: set疑问
set中存储的数据不能重复,是指具体的值不能相等,还是引用变量指向的对象不能是同一个呢?
作者: 今生无憾    时间: 2014-3-5 14:43
Set是一种不包含重复的元素的无序Collection,每个具体Set实现类依赖添加的对象equals()方法来检查独一性。
作者: osully    时间: 2014-3-5 15:25
把老师的代码敲个几遍

下面的看看能不能理解
HashSet集合,判断元素是否存在,或者删除元素,底层依据的是hashCode方法和equals方法。
TreeSet保证元素唯一性的方式:就是参考比较方法的结果是否为0,如果return 0,视为两个对象重复,不存。
作者: volvoxc    时间: 2014-3-5 18:14
默认是比较对象的地址吧,但这个也可以通过重写equals和hashcode方法来自己指定。
作者: My_work    时间: 2014-3-5 19:38
set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true




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