本帖最后由 创意三千取其一 于 2015-11-25 15:58 编辑
public class Demo11 {
public static void main(String[] args){
List<String> alist=new ArrayList<String>();
alist.add("神盾局特工");
alist.add("福尔摩斯基本演绎法");
alist.add("生活大爆炸");
alist.add("abc");
alist.add("abc");
alist.add("abc");
alist.add("abc");
alist.add("lie to me");
System.out.println(alist);
for(int i=0;i<alist.size();i++){
if(alist.get(i).equals("abc")){
alist.remove(i);
}
}
System.out.println(alist);
}
}
输出:[神盾局特工, 福尔摩斯基本演绎法, 生活大爆炸, abc, abc, lie to me]
add添加了四个“abc”,但是remove只去掉了两个。打印后还显示了两个。
————————————————————————————————————————————————————————————————————
我把上面代码中for循环里面的if语句换成while之后:
for(int i=0;i<alist.size();i++){
while(alist.get(i).equals("abc")){
alist.remove(i);
}
}
编译输出:[神盾局特工, 福尔摩斯基本演绎法, 生活大爆炸, lie to me]
一切正常,所有的“abc”都去掉了。
其他代码都没有改动,只是把if换为while,就达到预想的目的了。
请高手指点迷津,谢谢!
|
|