标题: 一道关于集合操作的题 [打印本页] 作者: wanghua1 时间: 2015-7-24 23:57 标题: 一道关于集合操作的题 ArrayList<String> list = new ArrayList<>();
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");
ArrayList<String> list = new ArrayList<>();
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");
b答案错误的原因:随着循环进行, list.size()也在变化,如果遇到Java,删除之后集合的所有元素前移动一位,但是i++不会停,Java后面的一个元素就没有进行判断,导致结果删不完全。作者: LiuWei2015 时间: 2015-7-27 00:36
抢个沙发