参考博文
构造方法
从源码可以看出,HashSet底层通过HashMap实现。
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
public HashSet() {
map = new HashMap<>();
}
public HashSet(int initialCapacity, float loadFactor) {
map = new HashMap<>(initialCapacity, loadFactor);
}
add方法
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
remove方法
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}
contains方法
public boolean contains(Object o) {
return map.containsKey(o);
}
说明
HashSet中保存的对象,请注意重写其equals和hashCode方法。