在循环中禁止remove/add

foreach是for的增强,是一个语法糖,对其反编译发现它其实依赖while循环和Iterator实现。

对List而言会触发fail-fast机制,抛出ConcurrentModificationException异常。考虑到并发修改。

解决方案;

1.普通for循环

2.Iterator提供remove

3.java8的filter过滤

4.使用fail-safe集合类: 如ConcurrentLinkedDeque类

 

posted @ 2019-03-21 21:56  facker1  阅读(121)  评论(0编辑  收藏  举报