List中的sublist方法遇到的坑
1.使用subList()遇到的坑
对使用sublist()获取到的子List集合进行操作会影响原来的List集合的数据
java中通过对原List进行截取获取子List, 对子List的操作会影响原List, 比如,操作包括对子List的删除元素(remove),添加元素(add),修改元素(set)等操作。
1)进行代码说明
下面进行代码说明
//创建原列表
List<String> list = new ArrayList<>();
list.add("00");
list.add("11");
list.add("22");
list.add("33");
list.add("44");
list.add("55");
//打印原列表
System.out.println("原列表 : "+list.toString()); //output: 原列表 : [00, 11, 22, 33, 44, 55]
//截取子列表
List<String> subList = list.subList(1, 3);
//打印子列表
System.out.println("子列表 : "+subList.toString()); //output: 子列表 : [11, 22]
//子列表移除一个元素
subList.remove(1);
//打印移除一个元素后的子列表
System.out.println("移除后的子列表 : "+subList.toString()); //output: 移除后的子列表 : [11]
//打印原列表
System.out.println("子列表移除一个元素后的原列表 : "+list.toString()); //output: 子列表移除一个元素后的源列表 : [00, 11, 33, 44, 55]
程序运行结果如下所示。
2)结论说明
使用subList()得到的子集合,对其进行操作(包括:增加,修改,删除),会影响原字符串的内容,因此在使用subList()方法时需要谨慎!