Java Bug -- java.util.ConcurrentModificationException

本文介绍了一种在Java中遇到的并发修改异常ConcurrentModificationException,并通过实例代码展示了如何将增强for循环改为普通for循环来避免该问题。适用于正在处理集合类并发修改问题的开发者。

  

 java.util.ConcurrentModificationException
        at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
        at com.lh.technologysupport.view.activity.ResponseActivity.lambda$initDynamicEvents$4$ResponseActivity(ResponseActivity.java:556)

 

addTraffic.setOnClickListener(v -> {
                String newTag = trafficClassChart.getText().toString().trim();
                if (!StringUtil.isEmptyStr(newTag)) {
                    List<String> tagsNew = new ArrayList<>();
                    List<String> tags = tagContainerTraffic.getTags();
                    if (tags == null || tags.isEmpty()) {
                        tagsNew.add(newTag);
                    } else {
                        for (String s : tags) {  // 改成 fori 循环 !
                            if (!s.equals(newTag)) {
                                tags.add(newTag);
                            }
                        }
                        tagsNew.addAll(tags);
                    }
                    tagContainerTraffic.setTags(tagsNew);
                }
            });

解决方式:把增强 for 改成 for(i) 循环!

 

参考:https://blog.youkuaiyun.com/wchicho/article/details/51987992

转载于:https://www.cnblogs.com/jooy/p/9229768.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值