Java List 集合详解
List 接口概述
List 是 Collection 体系中的重要分支,有序、可重复、有索引是它的三大特点。List 系列集合在 Collection 基础上增加了索引操作的相关方法,使得元素操作更加灵活。
List 特有方法
核心方法列表
| 方法 |
说明 |
返回值 |
void add(int index, E element) |
在指定位置插入元素 |
void |
E remove(int index) |
删除指定索引处的元素 |
被删除的元素 |
E set(int index, E element) |
修改指定索引处的元素 |
被修改的元素 |
E get(int index) |
获取指定索引处的元素 |
指定元素 |
代码演示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| public class ListMethods { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); System.out.println("初始集合: " + list); list.add(1, "qqq"); System.out.println("插入后: " + list); String removedElement = list.remove(0); System.out.println("删除的元素: " + removedElement); System.out.println("删除后: " + list); String oldElement = list.set(0, "modified"); System.out.println("被修改的元素: " + oldElement); String element = list.get(0); System.out.println("获取的元素: " + element); System.out.println("最终集合: " + list); } }
|
重要注意事项
删除方法的重载问题
1 2 3 4 5 6 7 8 9 10 11
| List<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3);
Integer elementToRemove = Integer.valueOf(1); numbers.remove(elementToRemove);
|
原理说明:Java 在方法重载时会优先匹配确切的参数类型,直接传递 int 时会调用 remove(int index) 方法,而传递 Integer 对象时会调用 remove(Object o) 方法。
List 遍历方式
List 集合支持 5 种遍历方式,每种方式都有其适用场景。
1. 迭代器遍历
1 2 3 4 5
| Iterator<String> it = list.iterator(); while(it.hasNext()) { String s = it.next(); System.out.println(s); }
|
2. 增强 for 循环
1 2 3
| for(String s : list) { System.out.println(s); }
|
3. Lambda 表达式
1
| list.forEach(s -> System.out.println(s));
|
4. 普通 for 循环
1 2 3
| for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
|
5. 列表迭代器(ListIterator)
1 2 3 4 5 6 7
| ListIterator<String> it2 = list.listIterator(); while(it2.hasNext()) { String str = it2.next(); if("bbb".equals(str)) { it2.add("qqq"); } }
|
列表迭代器特点:
- 继承自
Iterator,具备所有迭代器功能
- 支持双向遍历(向前和向后)
- 可以在遍历过程中添加、修改元素
- 可以获取当前元素的索引位置
遍历方式选择指南
| 遍历方式 |
适用场景 |
优点 |
缺点 |
| 迭代器 |
遍历过程中需要删除元素 |
安全的删除操作 |
功能相对基础 |
| 列表迭代器 |
遍历过程中需要添加元素 |
支持遍历时修改 |
只能用于List系列 |
| 增强for |
简单的遍历操作 |
语法简洁易读 |
不能操作索引 |
| Lambda表达式 |
函数式编程风格 |
代码简洁现代 |
JDK8+支持 |
| 普通for循环 |
需要操作索引的场景 |
可以操作索引 |
代码相对繁琐 |
核心要点总结
- List 有序性:元素按照添加顺序存储,可以通过索引精确访问
- 方法重载:注意
remove() 方法的重载问题,数字删除需要手动装箱
- 遍历选择:根据具体操作需求选择最合适的遍历方式
- 功能扩展:ListIterator 在 Iterator 基础上增加了添加、修改等实用功能
提示:在实际开发中,根据具体业务需求灵活选择遍历方式,既要考虑代码的简洁性,也要保证操作的安全性。如果觉得文章有用的话,请我喝杯咖啡吧~( •̀ ω •́ )✧

微信

支付宝
点击下方按钮可跳转到专属打赏页面,有感谢名单哦~