目录
一、HashSet
1、继承关系
2、基本属性
3、构造函数
4、增删改查方法:
从以上源码可以看出,HashSet底层是通过HashMap实现的,它将要添加的元素作为HashMap的key传了进去,利用了HashMap的键不能相同这一点来实现集合的去重,但既然它底层调用的是HashMap,那遍历的时候又是如何将键值对转换成单个值的呢?
它利用HashMap实现的keySet方法,将HashMap中的节点的key值组成的集合拿到,然后进行遍历,这就实现了键值对到单个值的转换;
二、LinkedHashSet
1、继承关系
2、构造函数
3、LinkedHashSet的特点
LinkedHashSet实现了数据插入的有序性,它实现数据插入的有序性的原因:
LinkedHashSet的每个构造函数都调用了父类HashSet的三个参数的构造方法:
4、应用场景:
去重且不能改变插入顺序;
三、TreeSet
1、继承关系
2、构造函数
3、特点
①底层数据结构:红黑树(因为调用了TreeMap)
②特点 :数据有序性,数据去重