Hashmap与HashSet的关系

举报
yd_57386892 发表于 2021/06/19 23:19:33 2021/06/19
【摘要】 Hashset内部是 由Hashmap构造的,只用到了Hashmap的key。 见Hashset的源码: public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ static final long...

Hashset内部是 由Hashmap构造的,只用到了Hashmap的key。

见Hashset的源码:


  
  1. public class HashSet<E>
  2. extends AbstractSet<E>
  3. implements Set<E>, Cloneable, java.io.Serializable
  4. {
  5. static final long serialVersionUID = -5024744406713321676L;
  6. private transient HashMap<E,Object> map;
  7. // Dummy value to associate with an Object in the backing Map
  8. private static final Object PRESENT = new Object();
  9. /**
  10. * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
  11. * default initial capacity (16) and load factor (0.75).
  12. */
  13. public HashSet() {
  14. map = new HashMap<E,Object>();
  15. }
  16. ......
  17. }

其中构造函数HashSet 内部有这句代码:map  = new HashMap<E,Object>. 同时从public class HashSet<E>的声明可以看出HashSet只关心key,并没有使用HashMap中的value。所以说HashSet是一种特别的HashMap。

文章来源: blog.csdn.net,作者:冉航--小虾米,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/gaoxiaoweiandy/article/details/118058250

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。