Java数组扩容:ArrayList自动扩容原理,初学者必知

ArrayList是Java动态数组,解决了普通数组长度固定的问题。其核心是自动扩容:当添加元素时,若当前元素数量(size)等于内部数组(elementData)长度,触发扩容。 扩容过程:计算最小容量(size+1),新容量首次为10(无参构造默认),其他情况为原容量1.5倍(如10→15,15→22),然后复制原元素到新数组。 扩容因子设为1.5倍,平衡了频繁扩容的性能损耗与内存浪费。理解原理可避免数组越界,提前预估元素数量并设置初始容量(如`new ArrayList(100)`)能减少扩容次数,提升效率。需注意:扩容需复制数组,并非无限大。

阅读全文