1. 程式人生 > >list陣列遍歷時能不能使用remove()方法,要注意什麼

list陣列遍歷時能不能使用remove()方法,要注意什麼

面試的時候經常會被問到,list遍歷時能不能使用remove()方法?

能不能使用呢?話說存在即合理,能使用時肯定可以的,不過要做點修改,看下面直接使用remove()的結果。

List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for(int i=0;i<list.size();i++){
if(i==1)list.remove(1);
System.out.println(list.get(i));
}

輸出結果是:

1
3
4                                                                                      

看結果好像沒什麼錯,但是如果是if(i==3),那麼就是刪除最後一個元素了,那後面的輸出語句就會報下標越界了:

因為刪掉一個元素後後面的元素下標都會減一,因此實際使用的時候注意到這一點就行了。面試的時候跟面試官說清楚這一點就行了。