大话HashSet

首先我们来看一下API
a:)HashSet的构造函数

public HashSet() {
    map = new HashMap<>();
}
我们很轻易的可以看出底层使用HashMap实现的。

b:)我们来看一下add方法

public boolean add(E e) {
    return map.put(e,PRESENT)==null;
}
我们可以看到使用map方法的put方法放入的,就是说虽然他是add方法,但是底层是map的put方法。e事我们放进去的对象,另一个是常量对象。

add中的常量对象

private static final Object PRESENT = new Object();
也就是说我们传入的对象作为key值,静态变量当作value,所有value都是一样的。

没有Get方法,我们来看他的iterator方法,返回的是map的key的集合
我们从这可以看出其实要想真正了解HashSet底层,那么我们需要去了解HashMap的底层

https://blog.csdn.net/qq_42784105/article/details/82661994

猜你喜欢

转载自blog.csdn.net/qq_42784105/article/details/82660891