HashSet概述
Hashset是基于Hashmap实现的,底层采用Hashmap保存元素。
基本属性
private transient HashMap<E,Object> map;
// 定义Object对象,作为value
private static final Object PRESENT = new Object();
构造函数
无参构造函数:public HashSet() { map = new HashMap<>(); }
构造带collection:
public HashSet(Collection<? extends E> c) {
map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));
addAll(c);
}
public HashSet(int initialCapacity, float loadFactor) {
map = new HashMap<>(initialCapacity, loadFactor);
}
public HashSet(int initialCapacity) {
map = new HashMap<>(initialCapacity);
}
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<>(initialCapacity, loadFactor);
}
方法
由于底层调用的是Hashmap,所以Hashset的方法并没有什么特别好讲的。