因此,当我们使用子集合tempList进行元素的修改操作时,会影响原有的list集合。所以在使用subList方法时,一定要想清楚,是否需要对子集合进行修改元素而不影响原有的list集合。
代码如下
List<Object> lists = new ArrayList<Object>();
lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");
List<Object> tempList = lists.subList(2, lists.size());
tempList.add("6");
System.out.println("tempList1"+ tempList); // 1
System.out.println("lists1"+lists); // 2
结果如下
tempList1[3, 4, 6]
lists1[1, 2, 3, 4, 6]
List<Object> lists2 = new ArrayList<Object>();
lists2.add("1");
lists2.add("2");
lists2.add("3");
lists2.add("4");
//注意这里是和本文顶部的代码不同的....
List<Object> tempList2 = new ArrayList<Object>(lists2.subList(2, lists2.size()));
tempList2.add("6");
System.out.println("tempList2"+ tempList2); // 1
System.out.println("lists2"+lists2); // 2
结果如下
tempList2[3, 4, 6]
lists2[1, 2, 3, 4]
我们用的时候要注意是否要考虑改变原有list的结构数据,不要有时候会出错