格言:在程序猿界混出点名堂!
该文章已经讲的很好了,直接参考。
https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/collection/ArrayList-Grow.md
注意几个要点
1.空构造函数的初始化大小为0的数组
2.非空构造函数初始化化大小为指定大小的数组
3.第一次扩容,如果初始化的数组小于10,则第一次扩容至10
4.每次新增或者插入元素要判断是否需要扩容,如果扩容增加到原来的1.5倍,同时进行数组拷贝,因为需要拷贝,索引建议如果已知LIst大小,尽量先初始化。避免反复扩容
建议采用guava的Lists.newArrayListWithExpectedSize(expectedSize)