📅  最后修改于: 2023-12-03 15:26:11.782000             🧑  作者: Mango
数组列表(ArrayList)是 Java 集合框架中的一种,它实现了 List 接口,是一个动态的数组容器,可以存储不同类型的对象(包括 null)。
与传统的静态数组相比,数组列表的主要优点是可以动态增长,并且具有更丰富的方法,方便进行插入、删除、搜索等操作。
在 Java 中,我们可以通过以下方式来定义一个数组列表:
// 声明 ArrayList
ArrayList<T> arrayList = new ArrayList<>(); // 创建一个空列表
// 创建并初始化 ArrayList
ArrayList<T> arrayList = new ArrayList<>(Arrays.asList(values)); // values 为 T 类型的数组
其中,T 表示存储的数据类型,可以是基本类型(如 int、float 等),也可以是对象类型、泛型等。
可以通过以下方法来向数组列表中添加元素:
// 在尾部添加元素
arrayList.add(element);
// 在指定位置插入元素
arrayList.add(index, element);
可以通过以下方法来删除数组列表中的元素:
// 删除指定位置的元素
arrayList.remove(index);
// 删除指定对象的元素
arrayList.remove(obj);
// 删除所有元素
arrayList.clear();
可以通过以下方法来获取数组列表中的元素:
// 获取指定位置的元素
arrayList.get(index);
可以通过以下方法来修改数组列表中的元素:
// 修改指定位置的元素
arrayList.set(index, element);
可以使用增强 for 循环或迭代器来遍历数组列表:
// 使用增强 for 循环遍历
for (T element : arrayList) {
// do something with element
}
// 使用迭代器遍历
Iterator<T> iterator = arrayList.iterator();
while (iterator.hasNext()) {
T element = iterator.next();
// do something with element
}
由于数组列表的实现基于动态数组,因此其性能主要受到内存管理和数组复制的影响。一般来说,数组列表的插入、删除操作的时间复杂度为 O(n),而查询操作的时间复杂度为 O(1)。
然而,尽管数组列表性能不如数组,但在 Java 中数组列表是更为常用的容器类型,因为它更加灵活、易于使用。