java list 迭代中能否删除?

原创 2016年08月28日 21:08:46

看到同事写的一段code,说java可以在for 迭代过程中remove一个元素。太奇怪了,请看下面一段code, 居然没有抱错。

public class Solution {

  private void  test(){
    
        List<String> noWantedList = new ArrayList<String>(Arrays.asList(new String[] { "pm_data", "pmd",
                "gte.config",
                "systemfiles", "license","node_id", "node_identity.txt",
                "tmp", "logfiles", "configuration", "security",
                "public_html","usr" }));
            String test="security";
            for (String regex : noWantedList) {
        if(test.equals(regex))
        {
        noWantedList.remove("security");
        }
        return ; //here
        }
    }


public static void main(String[] args) {

Solution solution=new Solution();
solution.test();
}
}


这和我印象中只有用iterator 迭代过程中可以删除,而且只有用iter.remove()相矛盾呀。

经过仔细琢磨,原来上面代码能通过是在通过remove之后,直接就return了,没有继续迭代,所以才不抱错。

不过个人觉得还是不要在for 迭代过程中删除,这样的代码设计是不合理的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java中List迭代过程中删除、新增元素的处理

异常信息: java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Ar...

Java-集合 list对象进行指定位置插入、删除、迭代、遍历输出(具体习题讲解)

原题: 创建一个 List,在 List 中增加三个工人,基本信息如下: 姓名   年龄    工资 zhang3 18      3000 li4    25      3500 w...

黑马程序员:Java基础——List集合共性方法,Iterator迭代和集合具体对象的特点

------- Java EE培训、java培训、期待与您交流! ----------

Java基础:循环迭代Array/List/Set/Map集合 增强for循环

书香年华 琅琅书声如春风拂过千年时空 少年啊壮志在胸赋首辞让人感动!

struts2迭代 Map List

  • 2013-04-08 22:39
  • 3.34MB
  • 下载

Java_基础—三种迭代的能否删除

* 普通for循环,可以删除,但是索引要-- * 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常 * 增强for循环不能删除

《黑马程序员》 list集合的几种迭代方式

public class ElementIteratorFashionCount { /** * 元素迭代的几种方式练习 以list集合为例 */ public static void ...

迭代输出Map和List<Map<String,Object>>的方法

一、Map String:key的类型 Object:value的类型,value可能是String,或者int类型,什么类型都可以 对于Map接口来说,本身不能直接迭代输出,因为Map的每个位...

jquery里面调用getjson方法,将list类型转换为json格式数据,在页面迭代显示

Jquery getJSON方法分析(一) Posted on 2009-12-25 17:25 梅桦 阅读(2713) 评论(4) 编辑 收藏 准备工作·Customer类 Code highli...

List迭代过滤操作注意点

今天在写一段很简单的代码,本来以为肯定没什么问题,然后直接跑的时候,吆,简单的一个List的操作报错了。仔细一看代码,确实有问题,但是一般真的是如果稍微不小心就会犯下面这种愚蠢的操作。 这里我把代码...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)