AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
> 注意:当 table.length(hash桶数组长度)小于 MIN_TREEIFY_CAPACITY(默认64)时会优先扩容(扩容机制 * 2)而不是转换为红黑树 为什么链表长度大于8才扩容 链表长度大于等于 k 时,会转化为红黑树。k 不能太大,因为链表的长度过大会影响插入和查找效率;k 也不能太小,treeify 并不是一个廉价的操作,我们希望链表长度大于等于 k 的概率要足够小,这样就可以尽量避免 treeify 扩容移动node是否一定会重新计算hashcode 扩容后的table大小变为原来的两倍,接下来就是进行扩容后table的调整: 假设扩容前的table大小为2的N次方,有上述put方法解析可知,元素的table索引为其hash值的后N位确定 那么扩容后的table大小即为2的N+1次方,则其中元素的table索引为其hash值的后N+1位确定,比原来多了一位 因此,table中的元素只有两种情况: 元素hash值第N+1位为0:不需要进行位置调整 元素hash值第N+1位为1:调整至原索引的两倍位置