Java中ArrayList集合中subList方法注意事项

来源:互联网 发布:数据库小项目 编辑:程序博客网 时间:2024/06/07 22:00

java.util.List中有一个subList方法,用来返回一个list的一部分的视图。

List<E> subList(int fromIndex, int toIndex);

它返回原来list的从[fromIndex, toIndex)之间这一部分的视图,之所以说是视图,是因为实际上,返回的list是靠原来的list支持的。

测试代码如下

package java_base;import java.util.ArrayList;import java.util.List;public class TestArraylist {public static void main(String[] args) {    ArrayList<Integer> arrayList = new ArrayList<>();    for (int i = 0; i < 10; i++) {        arrayList.add(i);    }    List<Integer> subList = arrayList.subList(2, 6);    subList.add(888);    for (Integer integer : subList) {        System.out.print(integer+", ");    }    System.out.println();    for (Integer integer : arrayList) {        System.out.print(integer+", ");    }}}

控制台输出

2, 3, 4, 5, 888, 0, 1, 2, 3, 4, 5, 888, 6, 7, 8, 9, 

可见,subList中add 888 后 , 原来的list 也在相应位置add了.