HashSet底层源码

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

 2、对key的hash值做运算

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

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

 5、插入元素

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

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

原文地址:https://www.cnblogs.com/wenwenzuiniucha/p/14976937.html