当前位置: 首页 > 知识库问答 >
问题:

负载因子在HashMap中的意义是什么?

单于亮
2023-03-14

HashMap有两个重要属性:大小负载因子。我查阅了Java文档,它说0.75f是初始加载因子。但我找不到它的实际用途。

有人能描述一下我们需要设置负载因子的不同场景,以及针对不同情况的一些示例理想值是什么吗?

共有1个答案

魏晨
2023-03-14

文档对此做了很好的解释:

HashMap的实例有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中的桶数,初始容量只是创建哈希表时的容量。负载因子是在哈希表的容量自动增加之前允许哈希表获得多满的度量。当哈希表中的条目数超过负载因子和当前容量的乘积时,哈希表被重新哈希(即重建内部数据结构),以便哈希表具有大约两倍的桶数。

作为一般规则,默认负载因子(.75)在时间和空间成本之间提供了一个很好的折衷。较高的值会减少空间开销,但会增加查找成本(反映在HashMap类的大多数操作中,包括get和put)。在设置其初始容量时应考虑映射中的预期条目数及其负载因子,以便最大限度地减少rehash操作的次数。如果初始容量大于最大条目数除以负载因子,则永远不会发生重新散列操作。

与所有性能优化一样,避免过早地优化(即没有关于瓶颈在哪里的硬数据)是一个好主意。

 类似资料:
  • 本文向大家介绍负载平衡的意义什么?相关面试题,主要包含被问及负载平衡的意义什么?时的应答技巧和注意事项,需要的朋友参考一下 在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通

  • 问题内容: 这是我的情况。我正在使用两个java.util.HashMap将一些常用数据存储在Tomcat上运行的Java Web应用程序中。我知道每个Hashmap中的确切条目数。键分别是字符串和整数。 我的问题是,设置初始容量和负载系数的最佳方法是什么? 我是否应该将容量设置为等于其将要包含的元素数量,并将负载容量设置为1.0?我希望在不占用过多内存的情况下获得绝对最佳的性能。但是,恐怕该表无

  • 我在读Hashmap。 HashMap的实例有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中的桶数。 如果Hashmap中有10个键值对。假设Hashcode是不同的。 每个遗嘱都在一个桶里,对吗?或者一个bucket可以有多个键值对? 因为在英语中的意思是一个很大的东西,其中有许多对象可以驻留。

  • 在typescript中枚举的用途是什么。如果它的目的仅仅是使代码可编辑,我们就不能使用常量来达到同样的目的吗 如果没有打字检查的好处,就不能写成。

  • 问题内容: 如何找到哈希表的当前负载率和容量? 问题答案: 您不应该能够获得负载系数和容量。它们是hashmap类的实现细节。但是,您可以使用反射。尽量避免使用它,但这通常是一个坏主意。

  • 问题内容: 我想了解如果我在动态添加的组件中不使用键会发生什么。我删除了键,它的渲染没有任何问题,只是给出了有关键使用的警告消息。有人可以举个例子,说明如果不使用密钥会带来什么后果? 问题答案: 按键可帮助React识别哪些项目已更改,添加或删除。应该为数组内的元素提供键,以赋予元素稳定的标识: 例: TL; DR在渲染动态子级时使用唯一键和常量键,或者期望发生奇怪的事情。 在我使用React.j