集合数据结构

hashmap的put方法  https://blog.csdn.net/qq_38182963/article/details/78942764

1、put操作可以覆盖原来的value,前提条件就是hash值相同且是同一个key,或者hash值相同且两个key equals。

2、插入链表后,元素大于8个,将链表转成红黑树

3、元素是放在链表的尾端

4、插入后,size += 1,如果size > threshold,执行扩容,

5、扩容时,对链表中的键值对重新计算桶索引,方法很巧妙。原来的链表会分裂为两个新链表,一个存放索引值不变的键值对,另一个存放索引值变化的键值对;并且键值对在新链表中的相对顺序没有变;但是在以前的JDK版本中,键值对的顺序变成了原来的倒序,它是依次将每个键值对插入到链表的头部。具体细节可以参考源码,这里就不详细展开了。

posted @ 2020-06-09 16:28  umin  阅读(154)  评论(0编辑  收藏  举报