HashMap 的性能因子
程序员文章站
2022-03-08 18:44:51
...
参考目录:
1. HashMap 散列初体验
2. 为什么HashMap 常用String 对象作key
3. HashMap 原理
4.自定义 hashCode()
5.HashMap 的性能因子
在实际应用中,当HashMap 默认的查找速度与存储速度不能满足我们的需求时,我们可以通过手工调整HashMap 来提高性能,从而满足我们对特定应用的需求。在调整HashMap 之前有一些术语首先让我们共同了解一下。
- 桶(bucket):表示实际散列表的数组。
- 容量:表示桶中的位数
- 初始容量:表在创建时所拥有的桶位数。HashMap 与 HashSet 都允许你在初始化的时候指定初始容量的大小
- 尺寸:表示当前存储的项数
- 负载因子:尺寸/容量。空表的负载因子是0,半满表的负载因子是0.5,以此类推。负载轻的表产生冲突的可能性小,因此对于插入和查找都是最理想的状态(但是会减慢使用迭代器遍历的过程)。HashMap 与HashSet 都允许指定负载因子的构造器,表示当负载情况达到该负载因子的水平时,容器将会自动扩容(增加桶位数),实现方式时使容量大致加倍,并重新将现有对象分布到新的桶位集中(这个过程被称为再散列)
HashMap 使用的默认的负载因子是0.75(也就是当表达到四分之三容量时,就进行散列),这个因子在时间和空间的代价之间达到了平衡。更高的负载因子可以降低表的空间,但是会增加查找代价,这样做是很忌讳的,因为在HashMap 中我们一般做的就是查询与插入操作。
下面是HashMap 的构造函数:
HashMap()
构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity)
构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity, float loadFactor)
构造一个带指定初始容量和加载因子的空 HashMap。
HashMap(Map<? extends K,? extends V> m)
构造一个映射关系与指定 Map 相同的新 HashMap。
在初始化的时候HashMap 允许我们创建指定大小容量与负载因子的map 以满足我们对特定的需求。
上一篇: win11专业版汉化中文版安装教程(附ios镜像文件)
下一篇: dubbo配置入门
推荐阅读
-
浅谈Oracle性能优化可能出现的问题
-
验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况
-
如何大幅提高DBCC CHECKDB/DBCC CHECKTABLE的性能
-
基于在生产环境中使用php性能测试工具xhprof的详解 游戏性能测试工具 web性能测试工具 网络性能测试工
-
创建大型高性能Web站点的十项规则_PHP
-
数据库中identity字段不必是系统产生的唯一值 性能优化方法(新招
-
电动车电机十大名牌排行(公认性能最好的电动车电机)
-
一篇文章,读懂Netty的高性能架构之道
-
关于一个用户迁移数据库前后的性能差异分析_MySQL
-
浅谈HashMap在高并发下的问题