打开HashSet的源码可以看到 继承AbstractSet<E> 实现Set<E>, Cloneable, java.io.Serializable接口
起主要参数为:
是的你没有看错 主要结构还是HashMap的一个map变量,和一个空对象persent
我们看一下他的构造器
HashSet调用的还是HashMap的构造器 也就是说HashSet的内存结构同HashMap一样
add方法
可以看见 set是将你要放入的Key 与一个空对象persent 作为键值对 存入HashMap
具体情况在上一章说的很清楚 不再赘述
也就是说 HashSet的数据结构和HashMap一样 并只是利用HashMap的Key来保存HashSet的键 他的值是一个Object()对象,由于HashMap的键值的不可重复性,同样的HashSet的元素是不能重复的。
contains方法 同也是调用的HashMap的方法 此处不再赘述