【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-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)