HashMap初始容量计算方法 - 极悦
首页 课程 师资 教程 报名

HashMap初始容量计算方法

  • 2022-01-05 10:58:44
  • 1333次 极悦

HashMap是java集合框架中高性能的数据结构之一。无论数据有多大,HashMap几乎都能为最频繁的操作——插入和检索——提供恒定的时间性能。这就是为什么HashMap是需要更快检索和更快插入操作的大数据的首选。有两个因素会影响HashMap的性能。一个是负载系数,另一个是初始容量。在构建HashMap时,您必须非常谨慎地选择这两个因素 目的。在这篇文章中,我们将看看 HashMap 中的初始容量和负载因子,看看它们如何影响HashMap的性能。

HashMap初始容量计算方法

HashMap 的初始容量:

HashMap的容量 是哈希表中的桶数。初始容量是HashMap创建时的容量 。所述的默认初始容量HashMap中为2 4,即16.的容量HashMap中每次它达到阈值的时间加倍。即容量增加到 2 5 =32, 2 6 =64, 2 7 =128..... 当达到阈值时。

HashMap 的负载因子:

负载因子是决定何时增加HashMap容量的度量。默认负载系数为 0.75f。

如何计算阈值?

HashMap的阈值是当前容量和负载因子的乘积。

阈值 =(电流容量)*(负载系数)

例如,如果创建的HashMap初始容量为 16,负载因子为 0.75f,则阈值将为,

阈值 = 16 * 0.75 = 12

也就是说,将第 12 个元素(键值对)添加到HashMap后,HashMap的容量从 16 增加到 32 。

初始容量和负载因子如何影响 HashMap 的性能?

每当HashMap达到其阈值时,就会发生重新散列。重新散列是创建具有新容量的新HashMap对象并将所有旧元素(键值对)重新计算其散列码后放入新对象的过程。这个重新散列的过程既耗费空间又耗费时间。因此,您必须通过记住预期元素(键值对)的数量来选择初始容量,以便重新散列过程不会过于频繁地发生。

在选择负载因子时,您还必须非常小心。根据HashMap文档,0.75f 的默认负载因子总是在空间和时间方面提供最佳性能。例如,

如果您选择负载因子为 1.0f,则在填充 100% 的当前容量后进行重新散列。这可能会节省空间,但会增加现有元素的检索时间。假设如果您选择负载因子为 0.5f,则在填充 50% 的当前容量后进行重新散列。这将增加重新散列操作的数量。这将在空间和时间方面进一步降低 HashMap。

因此,在选择HashMap对象的初始容量和负载因子时必须非常小心。选择初始容量和负载因子,以便最大限度地减少重新散列操作的数量。

通过上述介绍,相信大家对HashMap初始容量计算方法已经有所了解,大家如果想了解更多相关知识,不妨来关注一下极悦的Java基础教程,里面有更丰富的知识在等着大家去学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交