在API中可以看到这样一句:ArrayList()是构造一个初始容量为 10 的空列表。我知道调用size方法是查询相应的元素的数量,但对于视频中数组下标越界这一点还有点疑惑。
如果调用add方法插入元素时,list的长度也为元素的数量,那么ArrayList()方法初始化出来的容量为10的空列表有什么用?
ArrayList的底层是由一个Object[]数组构成的,
而这个Object[]数组,默认的长度是10
所以有的文章会说ArrayList长度容量为10。
然而你所指的size()方法,只的是“逻辑”长度。
所谓“逻辑”长度,是指内存已存在的“实际元素的长度”
而“空元素不被计算”
即:当你利用add()方法,向ArrayList内添加一个“元素”时,
逻辑长度就增加1位。 而剩下的9个空元素不被计算。