ArrayList底层原理

1. ArrayList 的基本结构

  ArrayList 内部使用一个 Object 类型的数组 elementData 来存储所有的元素。数组的长度可以动态调整。

2. 初始容量和扩容机制

  • 初始容量:当使用无参构造创建一个 ArrayList 实例时会在底层创建一个默认长度为0的数组,可以通过添加参数指定一个初始容量。添加第一个元素时,底层会创建一个新的长度为10的数组。
  • 扩容机制:当添加元素导致数组满时ArrayList 会创建一个新数组,新数组的容量通常是旧数组容量的 1.5 倍。

3. 关键操作的实现

    添加元素 (add())
  • 如果 ArrayList 的容量不足以容纳新元素,那么会触发扩容操作。
  • 新元素被添加到数组的末尾。
  • 扩容操作涉及到创建一个新的数组并将旧数组的内容复制到新的数组中。
  • 如果一次添加多个元素,1.5倍还放不下,则新创建数组的长度以实际为准

        例如

你可能感兴趣的:(JAVA,java,算法,数据结构)