【Java开发】集合框架(容器)

ArrayList详解

https://javabetter.cn/collection/arraylist.html
ArrayList 在数组的基础上实现了自动扩容,并且提供了比数组更丰富的预定义方法(各种增删改查),非常灵活。ArrayList 是 Java 中的一种可调整大小的数组实现,它属于 java.util 包下的 List 接口的实现类。ArrayList 提供了动态数组的功能,这意味着它能够根据需要增加和减少其大小。这对于在编程中需要经常修改数组大小的场景非常有用。

ArrayList 的主要特性

  1. 动态扩展:默认情况下,ArrayList 在元素填满容量时会自动扩大约为原来的1.5倍。
  2. 随机访问ArrayList 支持快速随机访问,时间复杂度为 O(1),因为它底层是通过数组实现的。
  3. 插入删除成本高:由于是数组实现,插入和删除操作可能需要移动元素以保持元素的连续性,这使得平均插入和删除操作的时间复杂度为 O(n)。

常用方法

  • add(E e):向 ArrayList 的末尾添加一个元素。
  • add(int index, E element):在指定位置插入一个元素。
  • remove(int index):移除指定位置的元素。
  • get(int index):返回指定位置上的元素。
  • set(int index, E element):将指定位置的元素替换为新元素。
  • size():返回 ArrayList 中的元素个数。
  • clear():移除所有元素,清空列表。
  • isEmpty():检查列表是否为空。

示例代码

下面是一些使用 ArrayList 的基本示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.ArrayList;

public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();

// 添加元素
list.add("Java");
list.add("Python");
list.add("C++");

// 在第一个位置插入新元素
list.add(0, "JavaScript");

// 访问元素
System.out.println("Element at index 1: " + list.get(1));

// 移除元素
list.remove("Python"); // 移除对象
list.remove(2); // 移除指定索引位置的元素

// 替换元素
list.set(0, "HTML");

// 输出所有元素
System.out.println("Contents of list: " + list);

// 清空列表
list.clear();
}
}

在算法中的使用

ArrayList 在许多算法中都非常有用,尤其是在需要动态数组功能时。例如,在处理不定量数据输入、进行数据聚合操作或者在需要频繁访问元素而不太频繁地插入或删除时,ArrayList 是一个非常合适的选择。