实现原理
红黑树是为了解决链表过长之后,查找时间过长的问题,将链表存储变为红黑树存储。
put方法的实现(5⭐)
相关属性:
1. 容量:初始容量为2^4。
2. 加载因子:初始值为0.75
上面两个属性的作用是用来计算扩容阈值:
put流程:
首先,判断用于存放键值对的table是否为空,若为空则要先初始化长度为16的table。
然后,根据key计算其对应的索引值i。如果table[i]==null,则直接插入,随后判断插入后的容量是否大于扩容阈值,若大于则进行扩容。如果table[i]!=null,则先判断key是否存在,若key存在则直接覆盖value,如果key不存在,则将键值对插入红黑树或链表中(如果是链表则要判断插入之后的长度是否大于8,以判断是否将链表变为红黑树)。