每次迭代循环时,我< arrList.size() 的条件会改变吗?


public void test(ArrayList<String> arrList){
for(int i = 0; i < arrList.size(); i++){
arrList.remove(i);
}
}

由于每次迭代循环时都要删除一个元素,所以每次循环时arrList.size()也会发生变化。每次循环迭代时,条件i < arrList.size()也会改变吗?还是它会保持不变,永远不会改变?

循环的每次迭代之前都会评估条件,因此List大小的变化将得到反映。但是,如果在List上迭代时删除元素,则会导致后面的元素向前移动,并且每次都会跳过一个元素。相反,请使用Iterator来移除元素或向后循环,以便索引处尚未达到的元素不会被移位。由于似乎要删除所有元素,因此可以直接调用List#clear,而不是手动删除每个元素。

它将被更改,因为"arrList.size(("将在每个循环中进行评估,您可以在代码中添加打印进行测试

相关内容

  • 没有找到相关文章

最新更新