0
点赞
收藏
分享

微信扫一扫

HashSet 的add方法实际调用return map.put(e, PRESENT)==null;

月白色的大狒 2023-02-21 阅读 104


看下源码

public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();

因为HashSet底层就是一个HashMap

HashSet的add方法也调用的HashMap的put

为啥要==null呢?

因为HashMap的put方法是有返回值的返回值就时null

PRESENT则是用来造一个假的value来用的。Map有键和值,HashSet相当于只有键,值都是相同的固定值,即PRESENT。


举报

相关推荐

0 条评论