HashSet的实现和HashMap类似,看源码,
public HashSet() {
map = new HashMap<>();
}
添加也是HashMap的添加,填充的也是键值对,虽然我们使用时只填充了一个值,实际上填充的是key,value被固定成了一个对象
private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
删除也如此
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}