一、概述
HashSet 底层使用哈希表,实际上是一个HashMap实例。
HashSet 排列是无序的,元素不可重复。
HashSet 元素值存放在 HashMap 的 key 上,value 为默认的 Object 。
二、代码分析
2.1、底层存储定义
- HashSet 底层使用 HashMap 进行存储
- 元素存储在 HashMap 中的 key 上,value 为默认的 Object 对象
2.2、构造函数
构造函数最终调用的都是 HashMap 实例化构造方法
除了 HashMap ,HashSet 有另外一种实现,使用 LinkedHashMap ,如下:
通过 LinkedHashMap 来保证 有序性,不过该构造是私有的,所以 HashSet 默认是无序的,该方法由其子类 LinkedHashSet 调用。《LinkedHashSet》2.3、添加方法
2.4、其他
其他方法都是依赖于 HashMap 来完成(参考源代码)