Java List 删除元素遍历:索引变化导致结果
已知集合 List<Integer> nums 中的数字为 [0, 1, 2, 3, 4, 5, 6];
现在对 nums 进行如下遍历操作:
for(int i=0;i<ls.size();i++){
System.out.println(nums.remove(i));
}
请问打印的内容是什么,理解吗?
打印的内容为: 0 2 4 6
这是因为在遍历过程中,每次删除一个元素后,后面的元素会自动向前移动填补空缺,导致索引发生变化。具体操作如下:
第一次循环:i=0,删除索引为 0 的元素,即 0,此时 nums 变为 [1, 2, 3, 4, 5, 6]。
第二次循环:i=1,删除索引为 1 的元素,即 2,此时 nums 变为 [1, 3, 4, 5, 6]。
第三次循环:i=2,删除索引为 2 的元素,即 4,此时 nums 变为 [1, 3, 5, 6]。
第四次循环:i=3,删除索引为 3 的元素,即 6,此时 nums 变为 [1, 3, 5]。
因此,打印的内容为 0、2、4、6。
原文地址: https://www.cveoy.top/t/topic/qg4u 著作权归作者所有。请勿转载和采集!