我们放入值,会发生什么
看下官方给的说明:
实现 Map.put 和相关方法
参数:
hash – 键的哈希值key-键
value-值
onlyIfAbsent – 如果为 true,则不更改现有值
evict – 如果为 false,则表处于创建模式。
返回:
上一个值,如果为 null,则为 null
我们在这里调用了putVal方法,再次进入
初始化或加倍表大小。如果为 null,则根据字段阈值中保留的初始容量目标进行分配。否则,由于我们使用的是 2 的幂展开,因此每个 bin 中的元素必须保持在同一索引处,或者在新表中以 2 的幂偏移量移动。
返回:
表格
第一次放入:
执行resize方法初始化
hash(key)的计算
tab下标(位于Hashmap的数组中的位置)的计算
创建节点,放入数组
第二次放入:key值相同