hashSet的底层是hashMap,然后hashMap底层维护了table数组+链表 或者 table数组+红黑树
第一次添加元素是table数组扩容到16,临界值为16*加载因子0.75=12,添加的元素是根据hash(value)生成的key;当添加的元素超过12时(所有的元素,不单单是table数组中的),table数组会按2倍扩容,此时的临界值为24*0.75=24;依次类推.
如果一条链表的长度达到8时;看此时数组的长度,如果数组的长度不超过64;则会按照 数组的扩容机制,否则就会进行树化(红黑树)

本文解析了HashSet的数据结构原理,包括其基于HashMap实现的特点,扩容机制及树化条件等关键内容。
267

被折叠的 条评论
为什么被折叠?



