跳到主要内容

Java List

提示
  1. List 接口的概念和类List 接口在 Java 中表示一个有序集合,允许顺序存储和访问元素。它的实现类包括 ArrayList, LinkedList, Vector, 和 Stack
  2. 使用 List 接口:要使用 List,必须先导入 java.util.List 包。List 提供了多种方法,如 add(), get(), set(), remove(), 等,用于操作列表元素。
  3. List 与 Set 的区别List 允许重复元素并维持元素的插入顺序,而 Set 不允许重复元素且不保证元素的顺序。这反映了列表和集合在数学上的区别。

在 Java 中,List 接口是一个有序集合,允许我们顺序地存储和访问元素。它扩展了 Collection 接口。

实现 List 的类

由于 List 是一个接口,我们不能直接从它创建对象。

为了使用 List 接口的功能,我们可以使用以下类:

在 Java 中实现 List 接口的类

这些类都定义在 Collections 框架中,并实现了 List 接口。

如何使用 List?

在 Java 中,我们必须导入 java.util.List 包才能使用 List

// ArrayList 实现的 List
List<String> list1 = new ArrayList<>();

// LinkedList 实现的 List
List<String> list2 = new LinkedList<>();

这里,我们创建了 ArrayListLinkedList 类的对象 list1list2。这些对象可以使用 List 接口的功能。

List 的方法

List 接口包括了 Collection 接口的所有方法。因为 CollectionList 的超接口。

Collection 接口中一些常用的方法也在 List 接口中可用,包括:

  • add() - 向列表添加一个元素
  • addAll() - 将一个列表的所有元素添加到另一个列表
  • get() - 用于从列表中随机访问元素
  • iterator() - 返回迭代器对象,可用于顺序访问列表的元素
  • set() - 更改列表的元素
  • remove() - 从列表中移除一个元素
  • removeAll() - 从列表中移除所有元素
  • clear() - 从列表中移除所有元素(比 removeAll() 更高效)
  • size() - 返回列表的长度
  • toArray() - 将列表转换为数组
  • contains() - 如果列表包含指定元素则返回 true

List 接口的实现

1. 实现 ArrayList 类

import java.util.List;
import java.util.ArrayList;

class Main {

public static void main(String[] args) {
// 使用 ArrayList 类创建列表
List<Integer> numbers = new ArrayList<>();

// 向列表添加元素
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("列表: " + numbers);

// 从列表中访问元素
int number = numbers.get(2);
System.out.println("访问的元素: " + number);

// 从列表中移除元素
int removedNumber = numbers.remove(1);
System.out.println("移除的元素: " + removedNumber);
}
}

输出

列表: [1, 2, 3]
访问的元素: 3
移除的元素: 2

要了解更多关于 ArrayList 的信息,请访问 Java ArrayList

2. 实现 LinkedList 类

import java.util.List;
import java.util.LinkedList;

class Main {

public static void main(String[] args) {
// 使用 LinkedList 类创建列表
List<Integer> numbers = new LinkedList<>();

// 向列表添加元素
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("列表: " + numbers);

// 从列表中访问元素
int number = numbers.get(2);
System.out.println("访问的元素: " + number);

// 使用 indexOf() 方法
int index = numbers.indexOf(2);
System.out.println("2 的位置是 " + index);

// 从列表中移除元素
int removedNumber = numbers.remove(1);
System.out.println("移除的元素: " + removedNumber);
}
}

输出

列表: [1, 2, 3]
访问的元素: 3
2 的位置是 1
移除的元素: 2

要了解更多关于 LinkedList 的信息,请访问 Java LinkedList

Java List 与 Set 的比较

List 接口和 Set 接口都继承了 Collection 接口。然而,它们之间存在一些区别。

  • 列表可以包含重复元素。然而,集合不能有重复元素。
  • 列表中的元素是按某种顺序存储的。然而,集合中的元素像数学中的集合一样存储在组中。

现在我们已经了解了 List 是什么,我们将在接下来的教程中详细介绍 ArrayListLinkedList 类的实现。