博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Collection源码分析(五):HashSet源码分析
阅读量:5733 次
发布时间:2019-06-18

本文共 464 字,大约阅读时间需要 1 分钟。

hot3.png

打开HashSet的源码可以看到 继承AbstractSet<E> 实现Set<E>, Cloneable, java.io.Serializable接口

起主要参数为:

155959_abVO_2970507.png

是的你没有看错 主要结构还是HashMap的一个map变量,和一个空对象persent

我们看一下他的构造器

160048_fBOm_2970507.png

HashSet调用的还是HashMap的构造器 也就是说HashSet的内存结构同HashMap一样

add方法

160202_L9PT_2970507.png

可以看见 set是将你要放入的Key 与一个空对象persent 作为键值对 存入HashMap

具体情况在上一章说的很清楚 不再赘述

也就是说 HashSet的数据结构和HashMap一样 并只是利用HashMap的Key来保存HashSet的键 他的值是一个Object()对象,由于HashMap的键值的不可重复性,同样的HashSet的元素是不能重复的。

contains方法 同也是调用的HashMap的方法 此处不再赘述

160537_arpn_2970507.png

转载于:https://my.oschina.net/u/2970507/blog/1801020

你可能感兴趣的文章
【http】post和get请求的区别
查看>>
/etc/profile
查看>>
摘记总结(1)
查看>>
TFS强制撤销某个工作区的文件签出记录
查看>>
编写who命令
查看>>
2.1 sikuli 中编程运行
查看>>
愚公移山第一章伪代码
查看>>
常见的位运算技巧总结(膜wys)
查看>>
python魔法函数(二)之__getitem__、__len__、__iter__
查看>>
EL表达式无法显示Model中的数据
查看>>
Linux应用小技巧
查看>>
考题纠错2
查看>>
ps6-工具的基础使用
查看>>
关于CefSharp.WinForms的学习
查看>>
灵活运用 SQL SERVER FOR XML PATH
查看>>
es 加磁盘扩容
查看>>
linux 参数内核
查看>>
使用Azcopy在Azure上进行HBase的冷热备份还原
查看>>
计组_定点数一位乘_布斯公式
查看>>
linux下使用过的命令总结(未整理完)
查看>>