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;
}
本文深入探讨了HashSet数据结构的实现原理,介绍了其基于HashMap的底层结构,并详细解释了add和remove操作的具体实现过程。

被折叠的 条评论
为什么被折叠?



