循环遍历list的时候删除list的元素报错
循环遍历list的时候删除list的元素报错
孙幼凌 发表于1年前
循环遍历list的时候删除list的元素报错
  • 发表于 1年前
  • 阅读 91
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

【强制】不要在 foreach 循环里进行元素的 remove/add 操作。 remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
    反例:
         List<String> a = new ArrayList<String>();
            a.add("1");
            a.add("2");
            for (String temp : a) {
            if("2".equals(temp)){
                a.remove(temp);
                }
            }
说明: 这个例子的执行结果会出乎意料,报错了。

    因为list在循环中的时候是不可以删除它的元素的。

正例:
    Iterator<String> it = a.iterator();
        while(it.hasNext()){
            String temp = it.next();
            if(删除元素的条件){
                it.remove();
              }
        }

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 4
博文 40
码字总数 29957
×
孙幼凌
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: