假设Java 8。
ArrayList的默认大小是10 (存储数据的数组的默认大小是10 ),当添加第11个元素时,数组的大小增加到15。
如果在第11个位置添加null,它也会增加吗?
我知道在list上调用size()会返回11,但问题是内部数组是否也会增长?
发布于 2018-12-28 19:29:42
public boolean add(E e) {
ensureCapacityInternal(size + 1);
elementData[size++] = e;
return true;
}这是Java的ArrayList的add函数的实现。没有处理null对象的条件,在这种情况下,它被视为普通对象并添加到ArrayList中。这将增加Collection的大小,因为它仍然作为元素存在。
这也会增加列表的内部大小。
发布于 2018-12-28 19:36:04
ArrayLists包含对存储在其他位置(内存中称为堆的位置)的对象的引用数组。因此,即使添加null,它的引用也会导致内部数组增长。
https://stackoverflow.com/questions/53957837
复制相似问题