ArrayList源码总结
1、底层基于数组实现
2、创建ArrayList如果不指定大小,会先创建一个大小为0的Object[ ]数组 ,
第一次添加数据时,会扩容成ArrayList的 默认大小default_capacity:10;
3、创建时如果指定大小,直接创建指定大小的Object[ ]数组
4、add()
- 对 size+1,去判断数组是否满了,如果满了就调用 grow()方法扩容,扩容大小为,原数组大小 + 原数组大小右移一位。也就是扩容到原来的1.5倍
- 然后把老数组拷贝到新数组里
elementData = Arrays.copyOf(elementData, newCapacity);
- 最后 elementData[ size++ ] = e,对数组赋值,(并且size+1&