概述
HashSet也是一个使用频率非常高的一个集合容器,最大的特点是存储的元素是没有重复的,而且是无序的,那么对于HashSet是如何判断原始是否重复、底层又是怎么实现的,你了解吗?
HashSet介绍
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
- 集合中的元素不重复
- 允许有null值
- 是无序的,即不会记录插入的顺序
- 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的
以上是HashSet的类结构图:
- 实现了Set接口,表名是一个去重集合容器
- 直接继承了AbstractSet类,该类实现了Set的骨干操作
- 实现了Cloneable接口,标记该类可以进行clone操作
- 实现了Serializable接口,标记改类可以序列化
构造方法
- public HashSet()
说明: 创建一个默认为空的HashSet
- public HashSet(int initialCapacity, float loadFactor)
说明:创建一个HashSet容器,initialCapacity表示设置初始容量大小,loadFactor表示负载因子, 当容量达到最大容量*负载因子时,需要进行扩容&#x