目录
一、Set接口
Set接口继承Collection接口(单列集合)。
Set的特点:没有索引值、不可以重复
Set接口的实现类:
1、HashSet
2、LinkedHashSet
3、TreeSet
二、Set集合不重复的原理
例:调用add添加方法,向Set集合中添加元素:
输出结果如下:
重复的元素只会添加一次,这是为什么?
我们需要深入了解一下Set集合的新增过程。新增时,先通过hashCode()方法(该方法属于Object类的方法)计算出新增数据的哈希值,再将新增数据的哈希值%数组长度,得到余数,即为新增数据在数组中的索引值位置,若此时该位置为null:则直接新增到该位置,如果不为null:则判断两个元素的哈希值&& (地址值||equals),如果哈希值和地址值或者哈希值与equals有一个条件满足,则判断为同一个元素,不会新增,如果哈希值和地址值或者哈希值与equals两个条件都不满足,则新增挂到链表的最后位置。
三、好好学习,天天向上
good good study,day day up!