阳坤92

我的理解是在 add 需要分 2 中情况: 1. 第一次添加数据,需要扩容数组之前,数组大小是 0 。 2. 第一次扩容完了之后,数组大小默认值 10,当扩容完了之后 element (size++) = e, 那么此时,数组长度为 10,只有第一个索引对应的值有数据,其它有为 null, 当然,此时的 ArrayList 长度也为 1。 我跟着源码 debug 也验证了我的判断。

2019-12-17
3
2
回复 3
阿加莎信徒 回复 阳坤92

你好,也就是说ArrayList的长度返回的是size大小,所以长度是1,而数组大小为默认扩容的10吗?

2020-02-17
王二小的宠物狗 回复 阿加莎信徒

数组的大小(size)和数组的容量(capacity)是两个概念,虽然 List 中没有显示的定义 capacity 这个属性。

2020-03-01
阿加莎信徒 回复 王二小的宠物狗

奥奥,好的,也就是给编程人员显示的List大小是调用list.size属性的,而list的底层数组的大小是扩容后的大小。

2020-03-01
没有更多内容
取消 回复 发送