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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanghua1 中级黑马   /  2015-7-24 23:57  /  375 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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后面的一个元素就没有进行判断,导致结果删不完全。

评分

参与人数 2黑马币 +11 收起 理由
扶摇丶 + 6 赞一个!
LiuWei2015 + 5 很给力!

查看全部评分

1 个回复

倒序浏览
抢个沙发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马