回答:
先判断map是否是空,空要扩容,再判断数组下标是否存在(key的hash值i),不存在就直接插入,不是空就判断key是否存在相同(equals),存在就直接覆盖,不存在判断是不是红黑树是就加,不是红黑树,遍历插入并看是不是到了链表长度8,到了就变为红黑树,最后再调整容量大小。
ps: resize()调整容量: 默认大小是16 每到容量的0.75的时候进行扩容,是先扩容2倍,如果不够再扩容。
源码
回答:
先判断map是否是空,空要扩容,再判断数组下标是否存在(key的hash值i),不存在就直接插入,不是空就判断key是否存在相同(equals),存在就直接覆盖,不存在判断是不是红黑树是就加,不是红黑树,遍历插入并看是不是到了链表长度8,到了就变为红黑树,最后再调整容量大小。
ps: resize()调整容量: 默认大小是16 每到容量的0.75的时候进行扩容,是先扩容2倍,如果不够再扩容。
源码