ArrayList 默认初始容量:10
默认容量下,数据的复制次数:
1千需要分配 11次
1万一级需要分配17次
10万 需要分配23次
100万需要分配28次
通过:elementData = Arrays.copyOf(elementData, newCapacity);
每次的增长: int newCapacity = (oldCapacity * 3)/2 + 1; 即:1.5倍
所以,如关系效率问题,可以给ArrayList初始容量,避免重新开辟数组和元素的复制。