Java List
提示
- List 接口的概念和类:
List
接口在 Java 中表示一个有序集合,允许顺序存储和访问元素。它的实现类包括ArrayList
,LinkedList
,Vector
, 和Stack
。 - 使用 List 接口:要使用
List
,必须先导入java.util.List
包。List
提供了多种方法,如add()
,get()
,set()
,remove()
, 等,用于操作列表元素。 - List 与 Set 的区别:
List
允许重复元素并维持元素的插入顺序,而Set
不允许重复元素且不保证元素的顺序。这反映了列表和集合在数学上的区别。
在 Java 中,List
接口是一个有序集合,允许我们顺序地存储和访问元素。它扩展了 Collection
接口。
实现 List 的类
由于 List
是一个接口,我们不能直接从它创建对象。
为了使用 List
接口的功能,我们可以使用以下类:
这些类都定义在 Collections 框架中,并实现了 List
接口。
如何使用 List?
在 Java 中,我们必须导入 java.util.List
包才能使用 List
。
// ArrayList 实现的 List
List<String> list1 = new ArrayList<>();
// LinkedList 实现的 List
List<String> list2 = new LinkedList<>();
这里,我们创建了 ArrayList
和 LinkedList
类的对象 list1
和 list2
。这些对象可以使用 List
接口的功能。
List 的方法
List
接口包括了 Collection
接口的所有方法。因为 Collection
是 List
的超接口。
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
是什么,我们将在接下来的教程中详细介绍 ArrayList
和 LinkedList
类的实现。