
List subList 方法1、基本介绍subList 方法用于获取原列表的一个视图而不是创建一个新的独立列表ListEsubList(intfromIndex,inttoIndex);参数说明fromIndex起始索引包含toIndex结束索引不包含2、基本使用ListStringlistnewArrayList(Arrays.asList(A,B,C,D,E));ListStringsublist.subList(1,4);System.out.println(sub);# 输出结果 [B, C, D]3、核心特性对子列表的修改增删改会直接影响原列表ListStringlistnewArrayList(Arrays.asList(A,B,C,D,E));System.out.println(list);ListStringsublist.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、注意事项对原列表进行了结构性修改增加或删除元素不包括修改元素值那么子列表会变得不可用ListStringlistnewArrayList(Arrays.asList(A,B,C,D,E));ListStringsublist.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 个元素ListStringlistnewArrayList();for(inti1;i10;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]