📜  数组列表 java (1)

📅  最后修改于: 2023-12-03 15:26:11.782000             🧑  作者: Mango

数组列表(ArrayList)Java

简介

数组列表(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 中数组列表是更为常用的容器类型,因为它更加灵活、易于使用。

参考文献