问答详情
源自:4-4 学生选课---添加课程 Ⅰ

关于ArryList初始化后容量的问题

在API中可以看到这样一句:ArrayList()是构造一个初始容量为 10 的空列表。我知道调用size方法是查询相应的元素的数量,但对于视频中数组下标越界这一点还有点疑惑。

如果调用add方法插入元素时,list的长度也为元素的数量,那么ArrayList()方法初始化出来的容量为10的空列表有什么用?

提问者:sioneden 2015-01-24 17:08

个回答

  • 伊兮尘昔
    2015-01-26 14:02:53
    已采纳

    ArrayList的底层是由一个Object[]数组构成的, 
    而这个Object[]数组,默认的长度是10 
    所以有的文章会说ArrayList长度容量为10。 
    然而你所指的size()方法,只的是“逻辑”长度。 
    所谓“逻辑”长度,是指内存已存在的“实际元素的长度” 
    而“空元素不被计算” 
    即:当你利用add()方法,向ArrayList内添加一个“元素”时, 
    逻辑长度就增加1位。 而剩下的9个空元素不被计算。