ArrayList实现原理和自动扩容

2023-06-02,,

ArrayList在Java集合中的位置,

ArrayList原理

transient Object[] elementData;

ArrayList通过数组来实现。

默认构造方法会构造一个容量为10的空数组。

自动扩容

在每次添加新元素(Add方法)时,都会通过grow方法判断当前list的size和list的容量的关系,以10 -> 15(1.5倍长度进行扩容)

创建一个新的长度的数组(第一次扩容是15),并复制原数组,赋给list存储对象。

copyOf方法最终采用native(操作系统底层)方法(C/C++)来完成。

也可以看到:

1,ArrayList不是线程安全的。

2,为什么ArrayList初始容量大小为10? 可能要问作者Josh Bloch, Neal Gafter

ArrayList实现原理和自动扩容的相关教程结束。

《ArrayList实现原理和自动扩容.doc》

下载本文的Word格式文档,以方便收藏与打印。