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了.