一、HashSet特性
特性 | 描述 |
---|---|
是否允许为null | 允许 |
是否允许数据重复 | 不允许 |
是否有序 | 无序 |
是否线程安全 | 非线程安全 |
二、HashSet底层实现
HashSet的底层实现是基于HashMap的。构造方法如下:
public HashSet() {map = new HashMap<>();}public HashSet(int initialCapacity) {map = new HashMap<>(initialCapacity);}
HashSet添加元素:
private static final Object PRESENT = new Object();public boolean add(E e) {return map.put(e, PRESENT)==null;}
由添加方法可以看出HashSet底层使用了HashMap作为存储结构且HashMap的value是一个常量,HashSet的值保存在key中。