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

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

List 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 arrayList = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        arrayList.add(i);
    }
    List 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了.

你可能感兴趣的:(java)