List中的subList方法的使用

ArrayList 中 subList 的基本用法:

    subList方法是在给定的ArrayList集合中获取给定下标的子集合,

 

 

在使用集合中,可能常常需要取集合中的某一部分子集来进行一下操作,于是subList这个方法就映入我们的眼帘,毫不犹豫地使用。

例如以下代码:

publicstaticvoid main(finalString[] args){
List<Object> lists =newArrayList<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(tempList);// 1

System.out.println(lists);// 2
}

代码初步写好后,可能我们想达到的效果是:往集合lists的子集合tempList中添加一个元素6,而原有的集合保持不变。

即到达这样的效果:lists = [1, 2, 3, 4],tempList = [3, 4, 6]。但是我们看到实际的结果确是lists里边也添加了元素6。

 

   当我们使用子集合tempList进行元素的修改操作时,会影响原有的list集合。所以在使用subList方法时,一定要想清楚,是否需要对子集合进行修改元素而不影响原有的list集合。

如果需要对子集合的元素进行修改操作而不需要影响原集合时,我们可以使用以下方法进行处理:

publicstaticvoid main(finalString[] args)publicstaticvoid main(finalString[] args){
List<Object> lists =newArrayList<Object>();

lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");

//注意这里是和本文顶部的代码不同的....
List<Object> tempList =newArrayList<Object>(lists.subList(2, lists.size()));

tempList.add("6");

System.out.println(tempList);// 1

System.out.println(lists);// 2
}

 

注意:在针对获取的子集合进行的一些增加、删除、修改操作全会直接影响到原有的父类集合

 

list.sublist(2,4)
就返回一个子集合:它的内容包括从下标为2到下标为4,而且这是左闭右开的
就是说是从大于等于2到小于4
(集合的下标都是从0开始)

 

你可能感兴趣的:(list)