ArrayList底层逻辑图
2022-08-17 15:53:27 7 举报
ArrayList底层逻辑图
作者其他创作
大纲/内容
进入ArrayLIst
ArrayList add底层实现
arrayList.add
说明ArrayList的无参构造生成了一个空的Object[]
无参初始化
确保容量充足
点进去ensureCapacityInternal
ensureCapacityInternal(size + 1)
此时入参minCapacity为10,而elementData的length仍为0,因此满足if条件,进入grow方法
grow扩容方法
点进去DEFAULT_CAPACITY常亮
此时elementData仍然是DEFAULTCAPACITY_EMPTY_ELEMENTDATA,因此if语句条件成立,返回DEFAULT_CAPACITY与minCapacity中较大的一个。已知minCapacity此时为1
扩容方法扩容到之前的1.5倍,如果小于最小容量把它赋值给新容量反之将旧的elementData复制到新的elementData
DEFAULTCAPACITY_EMPTY_ELEMENTDATA 构造一个空数组
注意此时calculateCapacity传入的参数elementData为空Object[],minCapacity为1
点进去ensureExplicitCapacity方法
private static final int DEFAULT_CAPACITY = 10因此返回的是DEFAULT_CAPACITY,值为10
收藏
0 条评论
下一页