美文网首页
HashSet, LinkedHashSet源码

HashSet, LinkedHashSet源码

作者: 后来丶_a24d | 来源:发表于2020-04-14 17:32 被阅读0次

目录

  • HashSet
  • LinkedHashSet

HashSet

  • 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素, value为
 // 定义一个虚拟的Object对象作为HashMap的value,将此对象定义为static final。  
private static final Object PRESENT = new Object();  
  • add方法之类也都是调用hashmap
// 如果是更新元素hashmap返回非空,所以这里能通过判断是否为空返回add是否成功
// 因为hashmap更新时value是相同的,这就保证了set无重复值
public boolean add(E e) {  
   return map.put(e, PRESENT)==null;  
} 

LinkedHashSet

  • 基于LinkedHashMap实现,思路与HashSet一致

参考文章

相关文章

网友评论

      本文标题:HashSet, LinkedHashSet源码

      本文链接:https://www.haomeiwen.com/subject/cbitvhtx.html