ArrayList
是 Java 集合框架中最常用的动态数组类,位于 java.util
包中。与普通数组不同,ArrayList
的大小是可变的,可以动态增加或减少元素。此外,它提供了丰富的操作方法,方便对元素进行添加、删除、查找和遍历。
1. ArrayList 的特点
- 动态大小:可以根据需要动态调整大小(自动扩容)。
- 有序集合:保证插入顺序,按索引存储元素。
- 允许重复:可以存储重复的元素。
- 支持随机访问:基于数组实现,提供高效的随机访问(时间复杂度 O(1))。
- 非线程安全:默认情况下,
ArrayList
不是线程安全的(需要手动同步)。
- 支持泛型:可以指定存储的元素类型,避免类型转换问题。
2. ArrayList 的类声明
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
<E>
:表示 ArrayList
是一个泛型类,可以存储任意类型的对象。
RandomAccess
:标识支持快速随机访问。
Cloneable
:支持浅拷贝。
Serializable
:支持序列化。
3. ArrayList 的常用构造方法
构造方法 |
描述 |
ArrayList() |
创建一个初始容量为 10 的空列表。 |
ArrayList(int initialCapacity) |
创建一个具有指定初始容量的空列表。 |
ArrayList(Collection<? extends E> c) |
创建一个包含指定集合所有元素的列表。 |
4. ArrayList 的常用方法
方法 |
描述 |
boolean add(E e) |
在列表末尾添加元素,返回 true 。 |
void add(int index, E element) |
在指定位置插入元素。 |
E get(int index) |
返回指定索引处的元素。 |
E remove(int index) |
移除指定索引处的元素,返回被移除的元素。 |
boolean remove(Object o) |
移除列表中首次出现的指定元素,返回是否移除成功。 |
E set(int index, E element) |
替换指定索引处的元素,返回原来的元素。 |
int size() |
返回列表中元素的数量。 |
boolean isEmpty() |
判断列表是否为空。 |
boolean contains(Object o) |
判断列表是否包含指定元素。 |
int indexOf(Object o) |
返回指定元素的第一次出现的索引,若不存在则返回 -1。 |
void clear() |
清空列表中的所有元素。 |
Object[] toArray() |
返回包含列表所有元素的数组。 |
<T> T[] toArray(T[] a) |
返回包含列表所有元素的指定类型数组。 |
5. ArrayList 的基本操作示例
5.1 添加与遍历元素
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[]