集合历来是面试热点,对于我们来说,如何轻松应对面试官的“步步紧逼”呢?那当然是看源码拉~
作者在此以ArrayList的简单元素添加为例,步步分析如何将一个元素添加至ArrayList的集合中~
源码在手,天下我有!
public class ArrayListAddAnalyze {
public static void main(String[] args) {
ArrayList list = new ArrayList();
for (int i = 0; i < 20; i++) {
list.add(i);
}
}
}
源码分析结论:
1、ArrayList中维护了一个Object类型的数组elementData
2、当创建ArrayList对象时,如果使用的是无参构造器,则初始容量为0,第一次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍
3、如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如需再次扩容,直接扩容为1.5倍



