hashset集合的继承体系:

java.lang.Object
      java.util.AbstractCollection      
           java.util.AbstractSet          
               java.util.HashSet

public class HashSet

    extends AbstractSet

        implements Set, Cloneable, java.io.Serializable

成员变量

private transient HashMap map;//由一个hashMap集合实现存储HashSet中的元素
private static final Object PRESENT = new Object();//集合中key-value的value恒定为PREENT

构造函数

public HashSet() {
  map = new HashMap<>();   //无参构造函数,实例化了一个hashMap集合
}
public HashSet(int initialCapacity, float loadFactor) {
    map = new HashMap<>(initialCapacity, loadFactor); //根据初始容量和加载因子初始hashMap
}

向集合中添加元素的方法

  public boolean add(E e) {
        return map.put(e, PRESENT)==null;//使用hashMap的put方法,value恒定为PRESENT
    }