喜欢就扣1支持吧
我在之前的一个文章里介绍过迭代器Iterator,不了解迭代器的可以看下
名词解释
modCount :实际修改集合的次数
expectedModCount :预期修改集合的次数
ConcurrentModificationException:并发修改异常
异常发生条件
- 当实际修改集合的次数 不等于 预期修改集合的次数时,提示并发修改异常
- 迭代器遍历的过程中 ,通过集合对象修改了集合中元素的长度, 造成了迭代器获取元素中判断预期修改值和实际修改值不一致
解决方案
- 方案一:用for循环遍历, 然后用集合对象做对应的操作即可
- 方案二:使用列表迭代器(ListIterator)使用前提必须时List集合
列表迭代器(ListIterator)
- 通过List集合的listlterator()方法得到, 所以它是List集合特有的迭代器
- 用于允许程序员沿任一方向遍历列表的列表迭代器, 在迭代期间修改列表,并获取列表中迭代器的当前位置
Listlterator中的常用方法
方法 | 说明 |
---|---|
E next() | 返回迭代中的下一一个元素 |
boolean hasNext() | 如果迭代具有更多元素,则返回true |
E previous() | 返回列表中的上一个元素 |
boolean hasPrevious() | 如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true |
void add(E e) | 将指定的元素插入列表 |
Listlterator与Iterator代码样例
import java.util.*