Java ArrayList 底层原理与核心方法手写实现
ArrayList 是 Java 集合框架中 List 接口的动态数组实现,它提供了便捷的增删查改操作。通过手写实现其核心逻辑,我们可以更透彻地理解顺序表在内存中的存储方式、扩容机制以及边界处理策略。
类结构定义
实现的核心在于维护一个内部数组和一个记录有效元素个数的变量。默认容量通常设为 10,当数据量超过当前容量时触发扩容。
import java.util.Arrays;
public class MyArrayList {
private int[] arr; // 存储数据的数组
private int usedSize; // 有效数据个数
public static final int DEFAULT_CAPACITY = 10; // 默认容量
public MyArrayList() {
this.arr = new int[DEFAULT_CAPACITY];
this.usedSize = 0;
}
}
核心方法实现
1. 添加元素(末尾)
向列表末尾添加元素前,必须检查数组是否已满。如果 usedSize 等于数组长度,说明空间不足,需要调用扩容方法。
public void add(int data) {
if (isFull()) {
grow();
}
this.arr[this.usedSize] = data;
this.usedSize++;
}
private boolean isFull() {
return this.usedSize == .arr.length;
}
{
.arr = Arrays.copyOf(.arr, * .arr.length);
}


