HashMap初始化参数(负载/初始容量)
我应该传递什么值来为N个项目创建有效的HashMap
/ HashMap
基于结构的结构?
在中ArrayList
,有效数字为N(N已假定未来增长)。a的参数应该是什么HashMap
?((int)(N *
0.75d),0.75d)?更多?减?更改负载系数有什么影响?
回答:
关于负载因子,我将简单引用HashMap
javadoc:
通常,默认负载因子(.75)在时间和空间成本之间提供了很好的折衷。较高的值会减少空间开销,但会增加查找成本(在HashMap类的大多数操作中都得到体现,包括get和put)。设置其初始容量时,应考虑映射中的预期条目数及其负载因子,以最大程度地减少重新哈希操作的次数。如果初始容量大于最大条目数除以负载因子,则将不会进行任何哈希操作。
意思是.75
,除非您要进行一些特定的优化,否则不应将的负载系数从更改。初始容量是您要更改的唯一内容,并根据您的N
值(即(N / 0.75) +
1,或该区域中的值)进行设置。这将确保该表将始终足够大,并且不会发生任何重新哈希。
以上是 HashMap初始化参数(负载/初始容量) 的全部内容, 来源链接: utcz.com/qa/402837.html