Set的数据结构
底层是基于HashMap存在的
// 无参构造器,调用HashMap的无参构造方法
public HashSet() {
map = new HashMap<>();
}
// 调用有参构造器,指定初始大小
public HashSet(int initialCapacity) {
map = new HashMap<>(initialCapacity);
}
add元素
key为存储的元素,每次新建一个Object作为key
private static final Object PRESENT = new Object();
private transient HashMap<E,Object> map;
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
remove元素
private transient HashMap<E,Object> map;
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}