如果添加null,ArrayList会动态增长吗?

时间:2018-12-28 11:27:12

标签: java arraylist

假设使用Java 8。

ArrayList的默认大小为10(默认情况下,存储数据的数组的大小为10),当向其添加第11个元素时,数组的大小将增加为15。

如果在第11个位置添加null也会增加吗?

我知道在列表中调用size()会返回11,但问题是内部数组是否也会增长?

2 个答案:

答案 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,其引用也会导致内部数组增大。