java学习日记20230521-HashMap
- HashMap底层维护了node类型的数组table,默认为null
- 当创建对象时,将加载因子loadfactor初始化为0.75
- 当添加key-value时,通过key的哈希值得到table的索引,判断该索引处是否有元素,如果没有元素直接添加,如果该索引处有元素,
- 继续判断元素的key和准备添加的key是否相同,如果相等直接替换value,如果不想等需要判断是树结构还是链状结构,做出相应处理,如果添加时发现容量不够,则进行扩容
- 第一次添加时,把table扩容为16,后面每次都是两倍扩容
- 在jdk8中,如果一条链表的元素个数超过了TREEIFY_THRESHOLD(默认时8),并且table的大小>=MIN_TREEIFY_CAPYCITY(默认64),就会进行树化

浙公网安备 33010602011771号