关于for与forEach遍历集合中对集合进行操作的问题

遍历List集合,在循环中再对List集合进行操作,有时候会遇到ConcurrentModificationException(并发修改异常);其实只有在forEach循环集合再对集合操作会发生异常;这里要先简单的讲forEach循环

  forEach

     forEach循环也叫增强for循环,其书写形式:for(元素类型  元素名 :集合);forEach循环比较简介,也很好用,我个人在编码中也喜欢用它,但它有几个特征

      1、forEach遍历时不能再对集合进行操作

      2、forEach同时只能遍历一个

      3、遍历时只有当前被遍历元素可见,其他不可见

      4、只能正向遍历

    forEach循环在对数组进行循环时和for循环是一样的;但是对List等集合进行遍历时,实际上遍历容器使用的方式是通过迭代器来进行的,其来源于Collection继承了Iterable接口;

 

 

一:for循环遍历集合

for循环遍历集合,在循环中对集合进行操作完全是没有问题的;但是,在for循环中对集合进行操作,要特别注意循环的长度及下标;

二:forEach(增强for)循环遍历结合

可以看到发生了异常;但是如果对元素进行操作后在下一次循环前跳出循环是不会发生异常的;以下代码可以看到remove后马上break,则没有发生异常;

 

 

 

转载于:https://www.cnblogs.com/minxl/p/10459129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值