for循环删除元素(增强型与迭代器)
遍历过程中删除元素会抛出(concurrentModificationException)异常。这是因为增强型for循环底层也是调用迭代器的next()和hasNext()方法进行遍历的,使用集合的remove()方法之后,由
final
void
checkForComodification() {
if
(modCount != expectedModCount)
throw
new
ConcurrentModificationException();
}
抛出异常。
单线程下解决方法:
1、增强型for循环
可以将需要移除的元素统一放在一个数组里,待循环完成之后,统一进行删除操作。
2、迭代器
使用迭代器自身的remove()方法进行移除即可。