黑马程序员技术交流社区

标题: 请大神给解释一下,谢谢 [打印本页]

作者: Android666    时间: 2016-2-18 18:19
标题: 请大神给解释一下,谢谢
ArrayList<String> list = new ArrayList<>();
                list.add("java");
                list.add("aaa");
                list.add("java");
                list.add("java");
        list.add("bbb");
下面可以删除list中所有的“java”的代码是(   )
for (int i = list.size()-1; i >= 0; i--) {
                        if("java".equals(list.get(i))){
                                list.remove(i);
                        }
        }


作者: xuecmg    时间: 2016-2-18 18:58
这个for循环能删除所有的java,是因为他是倒序删除的。因为每删除一个java,list集合的长度和每个元素的索引都会改变,而索引是从0开始的,倒序删除保证了在删除后面元素的同时不影响前面元素的索引。
如果是正序删除,就无法删除所有java。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2