HashSet

雨燕双飞 提交于 2020-01-24 17:37:17

HashSet的继承类和实现接口以及集合描述

在这里插入图片描述
HashSet继承AbstractSet类,实现了Set、Cloneable、Serializable接口。
在这里插入图片描述
我们解读后发现HashSet底层是用散列表来实现的,他是一个无序的,不允许重复的,并且允许null值的集合

HashSet的常用方法以及源码分析

构造器

在这里插入图片描述
在这里插入图片描述

构造器的底层最终实现的是HashMap,构造器最终调用的都是HashMap的构造器。

在这里插入图片描述

在这里插入图片描述
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()。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!