【Java基础】HashSet去重原理
2022/1/8 22:33:56
本文主要是介绍【Java基础】HashSet去重原理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
关于HashSet的概念,参考这篇文章
1.Java中HashSet使用散列表实现的,散列表的默认大小为16,加载因子为0.75
在这里的加载因子是代表Hash表中的元素填满的程度,加载因子0.75代表当HashSet中元素达到总容量的75%就要对HashSet进行扩充了
加载因子越大,填满的元素越多,空间率用率越高,但是冲突的机会增加了,查找成本越大,查找时间越长
加载因子越小,填满的元素越少,空间利用率越低,但是冲突的机会减少了,查找成本越小,查找时间越短
2.去重原理,当HashSet add一个元素时,先获取这个元素的散列码(hashcode方法),获取元素的哈希值
情况一:放计算出的元素的存储位置目前没有任何元素存储,那么该元素可以直接存储在该位置上
情况二:如果计算出的位置目前已经有其他元素的,那么会调用钙元素的equals方法于该位置的元素在比较一次
如果equals返回值是true,那么说明该元素重复,不允许添加
如果equals返回值为false,那么说明该元素不重复,那么继续探查下一个位置是否重复,然后重复上面情况
参考文章:
Java 集合的加载因子 - White_白 - 博客园
HashSet的去重原理---Java基础_咸鱼妹-CSDN博客_hashset去重原理
这篇关于【Java基础】HashSet去重原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门