ArrayList的实现
ArrayList的数据放在一个数组上
transient Object[] elementData;
有三种初始化方式:
1.构造一个默认初始容量为10的空列表
2.构造一个指定初始容量的空列表
3.构造一个包含指定Collection的数据
(3)存储数据
提供了5种存储数据的方法
set(int index,E element)
add(E e)
add(int index,E element)
addAll(Collection<? extends E> c)
addAll(int index, Collection<?extends E> c)
这些方法中的关键方法是
ensureCapacity(int newCapacity){
//当新容量大于原始大小,使用原始容量
if(newCapacity < size)
return;
//如果新容量大于原始容量
将老数据copy到一个新数组中,然后将原有数组扩容,将老数据加入到新数据中
}
增加数据的时候首先应该判断是不是容量够