A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.    ArrayList的初始化内容如下:
ArrayList<String> list = newArrayList<>();
      list.add("java");
      list.add("aaa");
      list.add("java");
      list.add("java");
  list.add("bbb");
下面可以删除list中所有的“java”的代码是(  A )  
a)
for (int i = list.size()-1;i >= 0; i--) {
        if("java".equals(list.get(i))){
           list.remove(i);
        }
  }
b)
for (int i =0; i <list.size(); i++) {
        if("java".equals(list.get(i))){
           list.remove(i);
        }
  }
c)  list.remove("java");
d)  list.removeAll("java");


答案是A但是B我还是不太明白的

6 个回复

倒序浏览
for (int i =0; i <list.size(); i++) {
        if("java".equals(list.get(i))){
           list.remove(i);
        }
  }
1.list.size()=4,i=0<4,删除java
2.list.size()=3,i=1<3,删除java
3.list.size()=2,i=2=list.size(),不符合循环条件,跳出循环。
最后集合还有java和aaa两个元素。

回复 使用道具 举报

哦哦原来如此谢谢
回复 使用道具 举报
删的过程集合大小会变,从后向前删除
回复 使用道具 举报
Matrix_heima 发表于 2015-7-24 23:06
删的过程集合大小会变,从后向前删除

恩恩谢谢
回复 使用道具 举报
学习了,乍一看A和B一样的,原来是Arraylist size会变。
回复 使用道具 举报
楼上说的有道理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马