List 是一个有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推。
List 实现了 Collection 接口,它主要有两个常用的实现类:ArrayList 类和 LinkedList 类。
这些类在Collections框架中定义并实现List接口。
如何使用List?
在Java中,必须导入 java.util.List 包才能使用List。
//List 的ArrayList 实现
List<String> list1 = new ArrayList<>();
// List 的LinkedList 实现
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;
public 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("List: " + numbers);
//从列表中访问元素
int number = numbers.get(2);
System.out.println("访问元素: " + number);
//从列表中删除元素
int removedNumber = numbers.remove(1);
System.out.println("删除元素: " + removedNumber);
}
}
输出结果
List: [1, 2, 3] 访问元素: 3 删除元素: 2
要了解更多信息ArrayList,请访问Java ArrayList。
2.实现LinkedList类
import java.util.List;
import java.util.LinkedList;
public 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("List: " + numbers);
//从列表中访问元素
int number = numbers.get(2);
System.out.println("访问元素: " + number);
//使用indexOf()方法
int index = numbers.indexOf(2);
System.out.println("位置3的元素是 " + index);
//从列表中删除元素
int removedNumber = numbers.remove(1);
System.out.println("删除元素: " + removedNumber);
}
}
输出结果
List: [1, 2, 3] 访问元素: 3 位置3的元素是 1 删除元素: 2
Java List 与 Set
List接口和Set接口都继承了Collection接口。 但是,它们之间存在一些差异。
-
List可以包含重复的元素。但是,Set不能有重复的元素。
-
List中的元素以某种顺序存储。但是,Set中的元素以组的形式存储,就像数学中的集合一样。