一、概念
在 Java 中,List
集合是一种常用的数据结构,List
是一个有序的集合,它允许元素重复。常见的实现类有 ArrayList
和 LinkedList
。
二、集合体系
- 有序:存取元素的顺序一致;
- 有索引:可以通过索引操作集合元素;
- 可重复:集合内的元素可以重复。
三、常用方法
Collection
集合的方法List
都继承了;List
集合因为有索引,所以相比于Collection
集合的方法多了很多操作索引的方法。
方法名 | 含义 |
---|---|
boolean add(E e) | 在集合的指定索引添加元素 |
E remove(int index) | 在集合的指定索引删除元素 |
E set(int index, E element) | 在集合的指定位置修改元素 |
E get(int index) | 返回集合指定索引位置的元素 |
样例:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
// 1. 新增元素
list.add("张三");
list.add("李四");
list.add("王五");
// 2. 删除元素
list.remove(0);
// 3. 修改元素
list.set(0, "张三");
// 4. 获取元素
System.out.println("集合的第一位元素:" + list.get(0));
}
}
运行结果:
集合的第一位元素:张三
注:因为 List 集合是一个接口,所以只能通过具体的实现类来创建对象。
四、遍历方式
4.1 迭代器
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 得到迭代器对象
Iterator<String> iterator = list.iterator();
// 遍历元素
while (iterator.hasNext()) {
System.out.println("当前元素:" + iterator.next());
}
}
}
4.2 列表迭代器
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 得到列表迭代器对象
ListIterator<String> listIterator = list.listIterator();
// 遍历元素
while (listIterator.hasNext()) {
System.out.println("当前元素:" + listIterator.next());
}
}
}
4.3 增强 for 循环
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 遍历集合
for (String element : list) {
System.out.println("当前元素:" + element);
}
}
}
4.4 普通 for 循环
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println("当前元素:" + list.get(i));
}
}
}
4.5 forEach
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 遍历集合
list.forEach(element -> System.out.println("当前元素:" + element));
}
}
4.6 遍历总结
1. 迭代器遍历:想在遍历过程中删除元素;
2. 列表迭代器:想在遍历过程中新增元素;
3. 增强for循环、Lambda:单纯只想遍历集合元素;
4. 普通for循环:想对集合操作一些复杂的操作。