Java ArrayList 底层原理与手动实现
ArrayList 是 Java 集合框架中 List 接口的动态数组实现,能够方便地存储和操作数据。通过从零开始手写 ArrayList 的核心方法,我们可以更深度地理解顺序表(Dynamic Array)的内存模型、扩容机制以及时间复杂度。
一、类定义与初始化
首先定义核心字段:
arr:整型数组,用于存储数据。usedSize:记录当前有效数据的个数。DEFAULT_CAPACITY:默认初始容量,通常设为 10。
构造方法负责初始化数组空间。
import java.util.Arrays;
public class MyArrayList implements IList {
private int[] arr; // 存储数据
private int usedSize; // 有效数据个数
public static final int DEFAULT_CAPACITY = 10; // 默认数组容量
public MyArrayList() {
this.arr = new int[DEFAULT_CAPACITY];
}
}
二、核心方法实现
1. 添加元素 add(int data)
向列表末尾追加元素时,首要任务是检查数组是否已满。如果满了,需要触发扩容逻辑。
public void add(int data) {
if (isFull()) {
grow();
}
this.arr[this.usedSize] = data;
this.usedSize++;
}
private boolean {
.usedSize == .arr.length;
}
{
.arr = Arrays.copyOf(.arr, * .arr.length);
}


