Collection源码分析(五):HashSet源码分析

打开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的方法 此处不再赘述

猜你喜欢

转载自my.oschina.net/u/2970507/blog/1801020