假设使用Java 8。
ArrayList
的默认大小为10(默认情况下,存储数据的数组的大小为10),当向其添加第11个元素时,数组的大小将增加为15。
如果在第11个位置添加null也会增加吗?
我知道在列表中调用size()
会返回11
,但问题是内部数组是否也会增长?
答案 0 :(得分:3)
public boolean add(E e) {
ensureCapacityInternal(size + 1);
elementData[size++] = e;
return true;
}
这是Java的ArrayList的add函数的实现。没有条件可以处理null
对象,在这种情况下,它被视为普通对象并添加到ArrayList中。这将增加Collection的大小,因为它仍然作为元素存在。
这也会增加列表的内部大小。
答案 1 :(得分:1)
ArrayLists包含对存储在其他位置(在内存中的位置,称为堆)的对象的引用数组。因此,即使您添加null,其引用也会导致内部数组增大。