ArrayList 是 Java 中一个动态数组数据结构,它实现了 List 接口。ArrayList 的内部结构主要包括以下几个部分:
-
Object[] elementData:这是一个 Object 类型的数组,用于存储列表中的元素。ArrayList 的元素可以是任何类型的对象,因为 Object 是 Java 中的基类。
-
int size:这是一个整数,表示 ArrayList 中当前存储的元素数量。当向 ArrayList 添加元素时,size 会相应地增加;当从 ArrayList 删除元素时,size 会相应地减少。
-
int capacity:这是一个整数,表示 ArrayList 的容量,即底层数组可以容纳的最大元素数量。当 ArrayList 的大小达到容量时,它会自动扩容。默认情况下,ArrayList 的容量为 10。
ArrayList 的主要操作包括添加、删除、获取和设置元素,以及遍历列表等。以下是一些常用的方法:
- add(E e):向 ArrayList 的末尾添加一个元素。
- remove(int index):从 ArrayList 中删除指定索引位置的元素。
- get(int index):获取 ArrayList 中指定索引位置的元素。
- set(int index, E element):设置 ArrayList 中指定索引位置的元素。
- size():返回 ArrayList 中当前存储的元素数量。
- capacity():返回 ArrayList 的容量。
ArrayList 的内部结构使得它在随机访问元素时具有很好的性能(时间复杂度为 O(1)),但在插入和删除元素时可能需要进行数组扩容和元素移动(时间复杂度为 O(n))。为了提高性能,ArrayList 在扩容时会创建一个新的数组,并将原数组中的元素复制到新数组中。