我是 ConcurrentHashMap 的新学习者。现在我编写以下代码:
ConcurrentHashMap<Integer, Integer> map = new ConcurrentHashMap(1);
for(int i=0; i<10; i++){
map.put(i,i);
}
//print map
我将ConcurrentHashMap的初始容量设置为1,之后我将10个值放入其中。所以在我看来,ConcurrentHashMap只会接收第一个,拒绝其余的9个;然而,当我打印 map 时,我发现所有 10 个值都已存储在 map 中。那么是没有使用初始容量参数还是ConcurrentHashMap达到容量后可以自行增加?
最佳答案
JVM 自动增加大小。容量仅用于初始化将映射支持到特定大小的任何集合。如果您确定要向其中添加至少 X 个项目,则将其初始化为该容量。 JVM 将根据需要为您调整其大小。
关于java - ConcurrentHashMap 超过容量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541210/