hashset集合的繼承體系:
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.HashSet<E>
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
成員變量
private transient HashMap<E,Object> 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 }