黑马程序员技术交流社区
标题: 关于ArrayList删除的问题.. [打印本页]
作者: azraeljia 时间: 2016-6-11 21:16
标题: 关于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,求大神解释一下错误答案哪里错误了.谢谢
作者: tianzhu2725 时间: 2016-6-11 21:44
D 答案removeAll()的参数为一个集合 不能为字符串, C答案 知识删除了其中一个"java" B答案是从0开始遍历的,删除了第一元素的花 原来第二个元素的索引就到了第一位置了,改为list.remove(i--)就可以了,希望对你有用!
作者: wsl123456 时间: 2016-6-11 21:44
"Java" "Java" "Java" "Java" "bbb"
作者: ancheng 时间: 2016-6-11 21:49
- b、当删掉一个元素时,后面的元素向前移动,而下标向后移动一位,这样的话,就有一个元素没有检测到
- c、这样只能删掉一个元素
- d、这个方法在1.6中好像没有,但是我在1.8中查到了该方法,但是参数是一个集合
复制代码
作者: lifeiwangyue 时间: 2016-6-11 22:17
来学习下 正序遍历 角标要-- 倒着就不用了 根据对象删除 不需要操作角标
作者: azraeljia 时间: 2016-6-15 21:12
谢谢,貌似我忽略了会移动了
作者: azraeljia 时间: 2016-6-15 21:13
谢谢,忘了会移动这事了
作者: azraeljia 时间: 2016-6-15 21:17
嗯嗯 知道了 谢谢啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |