HashSet的继承类和实现接口以及集合描述
HashSet继承AbstractSet类,实现了Set、Cloneable、Serializable接口。
我们解读后发现HashSet底层是用散列表来实现的,他是一个无序的,不允许重复的,并且允许null值的集合
HashSet的常用方法以及源码分析
构造器
构造器的底层最终实现的是HashMap,构造器最终调用的都是HashMap的构造器。
增![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/93bf634d364f04f7f69bd855315813f0.png)
HashSet 的 add()方法最终调用的是HashMap 的 put 方法,并且Value是一个固定值!
所以说HashSet的集合保存的元素都是使用HashMap去存储,并且元素是作为Key去存储的。Value是一个常量值。add方法返回的boolean类型来判断这个元素是否存在
删
同样,HashSet 的remove()方法也是调用HashMap的remove()方法。boolean类型来返回删除是否成功。
clear()方法以实同样
改
HashSet并不提供改的方法。
查
contains()方法也是调用HashMap的方法。
遍历
HashSet的遍历方法本质上就是HashMap对Key的遍历,所以iterator接口返回的就是KeySet().iterator()。