HashSet底层源码

1、底层是hashMap,put的val都是同一个new object()对象。

 

 2、对key的hash值做运算

 

 3、如果没有指定数组的长度,一开始会扩容

 

 4、数组默认长度是16,负载因子是0.75,默认负载长度是12,当单个链表长度大于8或者数组长度大于12数组就会以2倍速扩容。

 

 5、插入元素

 

 6、元素的长度超过了负载容量,扩容

 

 7、转红黑树,遍历第一个节点后面的元素,需要7个,此时是插入链表上第9个元素。

 

posted @ 2021-07-06 14:50  傲云萧雨  阅读(36)  评论(0编辑  收藏  举报