【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去重原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程