黑马程序员技术交流社区
标题: 分享一下刚考的一道题,不太明白 [打印本页]
作者: 鹰隼展翼 时间: 2015-7-24 22:16
标题: 分享一下刚考的一道题,不太明白
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我还是不太明白的
作者: AllenIverson 时间: 2015-7-24 22:30
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两个元素。
作者: 鹰隼展翼 时间: 2015-7-24 23:02
哦哦原来如此谢谢
作者: Matrix_heima 时间: 2015-7-24 23:06
删的过程集合大小会变,从后向前删除
作者: 鹰隼展翼 时间: 2015-7-24 23:07
恩恩谢谢
作者: umbriel 时间: 2015-7-24 23:17
学习了,乍一看A和B一样的,原来是Arraylist size会变。
作者: 黑马的学员 时间: 2015-7-24 23:27
楼上说的有道理
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |