# Java 初学者`List`集合教程
> 原文: [https://javabeginnerstutorial.com/core-java-tutorial/list-collection-tutorial-for-java-beginners/](https://javabeginnerstutorial.com/core-java-tutorial/list-collection-tutorial-for-java-beginners/)
在这里,我们将详细了解`List`接口及其不同实现。 `java.util`包中的列表接口是`java.util.Collection`接口的子类型。
## `List`接口要点
1. 它是`java.util`包的一部分。
2. 它是`java.util.Collection`接口的子类型。
3. 列表是**有序集合**。 意味着可以按有序方式(按索引)访问`List`的元素。
4. 允许重复值。
5. 允许为`NULL`值。
6. `List`有一个名为`ListIterator`的特殊迭代器。 这将有助于双向遍历列表。
7. `List`可以完全控制每个元素的插入位置。
## `List`接口可用的操作
* 位置访问
* 搜索
* 迭代
* 范围视图
## `List`接口的具体实现
* `java.util.ArrayList`
* `java.util.LinkedList`
* `java.util.Vector`
* `java.util.Stack`
## 创建列表实例
```java
List listA = new ArrayList();
```
```java
List listB = new LinkedList();
```
```java
List listC = new Vector();
```
```java
List listD = new Stack();
```
## 在列表中添加元素
```java
List listA = new ArrayList();
```
```java
listA.add("element 1");
```
```java
listA.add("element 2");
```
```java
listA.add("element 3");
```
```java
listA.add(0, "element 0");
```
## 访问元素
**语法**:`E set(int index, E element);`
**用途**:用于返回指定位置的元素
**返回**:返回给定列表中指定位置的元素。
## 替换元素
**语法**:`E set(int index, E element);`
**用途**:用于替换列表中指定位置的元素。
**返回**:返回替换的元素。
## 性能要点
* 列表接口具有搜索对象的方法。 但是不应使用相同的方法,因为它会降低性能,因为在某些实现中它将使用线性搜索。
* 列表可以包含另一个列表作为元素,但是`HashCode`和`Equals`不适用于这些列表,因此不应使用相同的列表。