需要處理一個場景,當值為某一個固定值或者為空的時候,刪除列表中的這個值。
//1.for循環刪除
for(int i=0;i<list.size();i++){ if(list.get(i).equals("del")) list.remove(i); }
但是直接使用list.remove(i)這個方法的時候,刪除第一個繼續根據索引訪問第2個元素時,因為刪除的關系后面的元素都往前移動了一位,所以實際訪問的是第3個元素。因此,這種方式可以用在刪除特定的一個元素時使用,但不適合循環刪除多個元素時使用。
//2.iterator遍歷,查出對應值,做對應操作 Iterator<String> it = list.iterator(); while(it.hasNext()){ String x = it.next(); if(x.equals("del")){ it.remove(); } }
這個時候就可以使用第二種方法,我們找到對應的值,全部給remove掉,這樣就不會受索引的影響。
