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(("将在每个循环中进行评估,您可以在代码中添加打印进行测试