ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java `List`接口 > 原文: [https://www.programiz.com/java-programming/list](https://www.programiz.com/java-programming/list) #### 在本教程中,我们将学习 Java 中的`List`接口及其方法。 在 Java 中,`List`接口是一个有序的集合,它使我们能够顺序存储和访问元素。 它扩展了`Collection`接口。 * * * ## 实现列表的类 由于`List`是一个接口,因此我们无法从中创建对象。 为了使用`List`接口的功能,我们可以使用以下类: * [`ArrayList`](/java-programming/arraylist "Java ArrayList class") * [`LinkedList`](/java-programming/linkedlist "Java LinkedList class") * [`Vector`](/java-programming/vector "Java Vector class") * [`Stack`](/java-programming/stack "Java Stack class") ![Classes implementing the List interface in Java](https://img.kancloud.cn/03/87/038735ddc0c2b2617a0bd8974fe74f8e_1200x373.png "Java List interface") 这些类在集合框架中定义,并实现`List`接口。 * * * ## 如何使用列表? 在 Java 中,必须导入`java.util.List`包才能使用`List`。 ```java // ArrayList implementation of List List<String> list1 = new ArrayList<>(); // LinkedList implementation of List List<String> list2 = new LinkedList<>(); ``` 在这里,我们创建了`ArrayList`和`LinkedList`类的对象`list1`和`list2`。 这些对象可以使用`List`接口的功能。 * * * ## 列表方法 `List`接口包含`Collection`接口的所有方法。 这是因为`Collection`是`List`的超级接口。 `List`接口中还提供了`Collection`接口的一些常用方法: * `add()` - 将元素添加到列表 * `addAll()` - 将一个列表的所有元素添加到另一个 * `get()` - 帮助从列表中随机访问元素 * `iterator()` - 返回可用于顺序访问列表元素的迭代器对象 * `set()` - 更改列表元素 * `remove()` - 从列表中删除一个元素 * `removeAll()` - 从列表中删除所有元素 * `clear()` - 从列表中删除所有元素(比`removeAll()`更有效) * `size()` - 返回列表的长度 * `toArray()` - 将列表转换为数组 * `contains()` - 如果列表包含指定的元素,则返回`true` * * * ## `List`接口的实现 **1.`ArrayList`实现类** ```java import java.util.List; import java.util.ArrayList; class Main { public static void main(String[] args) { // Creating list using the ArrayList class List<Integer> numbers = new ArrayList<>(); // Add elements to the list numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); // Access element from the list int number = numbers.get(2); System.out.println("Accessed Element: " + number); // Remove element from the list int removedNumber = numbers.remove(1); System.out.println("Removed Element: " + removedNumber); } } ``` **输出** ```java List: [1, 2, 3] Accessed Element: 3 Removed Element: 2 ``` 要了解有关`ArrayList`的更多信息,请访问 [Java ArrayList](https://www.programiz.com/java-programming/arraylist) 。 **2.`LinkedList`实现类** ```java import java.util.List; import java.util.LinkedList; class Main { public static void main(String[] args) { // Creating list using the LinkedList class List<Integer> numbers = new LinkedList<>(); // Add elements to the list numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); // Access element from the list int number = numbers.get(2); System.out.println("Accessed Element: " + number); // Using the indexOf() method int index = numbers.indexOf(2); System.out.println("Position of 3 is " + index); // Remove element from the list int removedNumber = numbers.remove(1); System.out.println("Removed Element: " + removedNumber); } } ``` **输出**: ```java List: [1, 2, 3] Accessed Element: 3 Position of 3 is 1 Removed Element: 2 ``` 要了解有关`LinkedList`的更多信息,请访问 [Java LinkedList](https://www.programiz.com/java-programming/linkedlist) 。 * * * ## Java 列表与集合 `List`接口和`Set`接口都继承`Collection`接口。 但是,它们之间存在一些差异。 * 列表可以包含重复的元素。 但是,集合不能有重复的元素。 * 列表中的元素以某种顺序存储。 但是,集合中的元素像数学中的集合一样按组存储。 既然我们知道了`List`是什么,我们将在下一个教程中详细了解`ArrayList`和`LinkedList`类中的实现。