1、首先看ArrayList默认构造方法创建
/**
* Shared empty array instance used for default sized empty instances. We
* distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when
* first element is added.
*/
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
/**
* Constructs an empty list with an initial capacity of ten.
*/
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
从以上两段代码得知,List集合底层就是用数组(属性名:elementData)存储数据的,默认构造方法初始化数组为空,那么数组的长度即为0,所以通过默认构造方法创建集合,默认数组的长度为0
2、接着看集合add方法和addAll方法
/**
* The size of the ArrayList (the number of elements it contains).
*
* @serial
*/
private int size;
/**
* Appends the specified element to the end of this list.
*
* @param e element to be appended to this list
* @return <tt>true</tt> (as specified by {@link Collection#add})
*/
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
/**
* Appends all of the elements in the specified col

最低0.47元/天 解锁文章
1162

被折叠的 条评论
为什么被折叠?



