Java ArrayList 核心解析
ArrayList 是 Java 集合框架中最常用的动态数组实现,底层维护一个 Object[] 数组(elementData),通过 size 变量记录当前有效元素个数。它实现了 List 接口,支持随机访问,同时具备 Cloneable 和 Serializable 特性。需要注意的是,ArrayList 不是线程安全的,在多线程环境下建议使用 Vector 或 CopyOnWriteArrayList。
一、ArrayList 的概念
ArrayList 是以泛型方式实现的动态顺序表,底层是一段连续的空间,容量可自动扩容。使用时必须实例化,适合大多数读多写少的场景。

二、ArrayList 的使用
1. 构造 ArrayList
ArrayList 提供三种构造函数,根据实际需求选择初始容量能有效减少扩容带来的性能损耗。
| 方法 | 说明 |
|---|---|
ArrayList() | 无参构造,默认容量为 10 |
ArrayList(Collection<? extends E> c) | 利用其他 Collection 构建 |
ArrayList(int initialCapacity) | 指定顺序表初始容量 |
1.1 无参构造方法
public static void main(String[] args) {
// 创建一个空的 ArrayList,默认容量为 10
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list);
}
1.2 带有初始容量的构造方法
如果预估数据量较大,建议直接指定初始容量,避免频繁扩容导致的内存拷贝开销。
// 创建一个有初始容量的 ArrayList
ArrayList<Integer> list2 = new ArrayList<>(5);
list2.add(22);
list2.add(33);
list2.add(44);
System.out.println(list2);



