Java— ConcurrentModificationException异常处理

异常描述
如果一个迭代器发现它的集合被另一个迭代器修改了,或是被该集合自身的方法修改了,就会跑出一个ConcurrentModificationException异常。
(也存在例外情况,文末已给出)


情况一:
Java— ConcurrentModificationException异常处理
情况二:
Java— ConcurrentModificationException异常处理
避免该异常应遵循原则
可以根据需要为一个集合关联多个迭代器,前提是这些迭代器只能读取集合。或者,可以关联一个能同时读写的迭代器。

对上述例子可以修改为:
修改一:
Java— ConcurrentModificationException异常处理
修改二(和原例的需求不符合,目的为演示上述避免异常的原则):
Java— ConcurrentModificationException异常处理
例外
链表只跟踪对列表的结构性修改,例如,添加和删除链接。set方法不被视为结构性修改,也就是说在使用set方法时并受上述原则约束。

例:
Java— ConcurrentModificationException异常处理