|
1
2
对于这种情况,您有
细节 here . 简而言之,ConcurrentHashMap的工作原理是拥有独立锁定的独立块,因此在工作完成之前,没有其他线程可以访问它(但此时可以访问其他块)。默认块大小为16。更多信息 here . 现在,您必须了解地图大小,才能讨论如何填充地图。默认大小为16。但是,有一个0.75的负载系数,这意味着当地图占满75%时,它将调整大小为以前大小的两倍,也就是说,创建新的数组新的键集,然后将所有内容复制到它(当我说new Set时,我指的是在其中调整大小的相同逻辑)。现在,如果您快速填充,这意味着需要大量复制,对于较大的尺寸,需要花费时间,因此最好在开始时设置较大的初始尺寸,例如:
允许
顺便提一下,Java中HashMap和ConcurrentHashMap(以及HashSet和ArrayList,或任何基于数组的数据结构)的最大大小为
|
|
AmirSina01 · 从对象中获取HashMap值[重复] 2 年前 |
|
|
Maam maam · 运行时错误,因为“unsigned int” 2 年前 |
|
|
Expert · HashMap中的矢量[重复] 2 年前 |
|
|
Ariana · 在C中初始化hash_map++ 2 年前 |
|
|
TheOdinBorson · Leetcode To K频繁元素 2 年前 |