Java 开发 - List subList 方法
📅 2026/8/4 7:27:47
👁️ 阅读次数
📝 编程学习
List subList 方法
1、基本介绍
- subList 方法用于获取原列表的一个视图,而不是创建一个新的独立列表
List<E>subList(intfromIndex,inttoIndex);| 参数 | 说明 |
|---|---|
| fromIndex | 起始索引(包含) |
| toIndex | 结束索引(不包含) |
2、基本使用
List<String>list=newArrayList<>(Arrays.asList("A","B","C","D","E"));List<String>sub=list.subList(1,4);System.out.println(sub);# 输出结果 [B, C, D]3、核心特性
- 对子列表的修改(增删改)会直接影响原列表
List<String>list=newArrayList<>(Arrays.asList("A","B","C","D","E"));System.out.println(list);List<String>sub=list.subList(1,4);sub.set(0,"X");System.out.println(list);sub.add("F");System.out.println(list);# 输出结果 [A, B, C, D, E] [A, X, C, D, E] [A, X, C, D, F, E]4、注意事项
- 对原列表进行了结构性修改(增加或删除元素,不包括修改元素值),那么子列表会变得不可用
List<String>list=newArrayList<>(Arrays.asList("A","B","C","D","E"));List<String>sub=list.subList(1,4);list.set(1,"BB");try{System.out.println(sub.get(0));}catch(Exceptione){e.printStackTrace();}list.add("F");try{System.out.println(sub.get(0));}catch(Exceptione){e.printStackTrace();}try{System.out.println(sub.size());}catch(Exceptione){e.printStackTrace();}# 输出结果 BB java.util.ConcurrentModificationException ... java.util.ConcurrentModificationException ...5、实例实操
- 在原 List 上操作(不创建新对象)只保留前 5 个元素
List<String>list=newArrayList<>();for(inti=1;i<=10;i++){list.add("元素"+i);}System.out.println("原列表: "+list);if(list.size()>5){list.subList(5,list.size()).clear();}System.out.println("截取后: "+list);# 输出结果 原列表: [元素1, 元素2, 元素3, 元素4, 元素5, 元素6, 元素7, 元素8, 元素9, 元素10] 截取后: [元素1, 元素2, 元素3, 元素4, 元素5]
编程学习
技术分享
实战经验