HashSet
概述
hashSet 是对HashMap 的封装,底层的实现都是由HashMap 的实现, HashSet 的值都存在HashMap 的key中,value 是一个默认的空对象,HashSet 的 不可重复特征,也是由HashMap key 的唯一性实现的
重要属性
//数据存储对象, 对元素的操作也是由map对象完成
private transient HashMap<E,Object> map;
// map 中的 vaule 值
private static final Object PRESENT = new Object();
重要方法
通过几个重要的方法可以看出,HashSet的操作都是通过HashMap对象的方法来实现的
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}
public void clear() {
map.clear();
}
public Iterator<E> iterator() {
return map.keySet().iterator();
}