返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图
List<Integer> list = new ArrayList<Integer>();//原列表
list.add(1);
list.add(2);
List<Integer> list3 = list.subList(0, list.size());//子列表
list3.add(3);
for(Integer i:list)
print(i+",");
println();
for(Integer i:list3)
print(i+",");
结果:1,2,3,
1,2,3,
子列表是原列表的视图(不同于数据库中的视图),所有修改都反映在原列表上。
==============================================================================================
需求:有个列表共有30个元素,现在要删除5-10位置的元素
List<Integer> list = new ArrayList<Integer>();
for(int i=0; i<30; i++)
list.add(i);
for(int i=5; i<10; i++)
list.remove(i);
for(Integer i:list)
print(i+",");
结果0,1,2,3,4,6,8,10,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,结果不对啊,因为删除一个元素后,后面的元素会往前移,位置以经改了
一行代码解决问题:
list.subList(5, 10).clear();
结果0,1,2,3,4,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,