Java— ConcurrentModificationException异常处理
异常描述:
如果一个迭代器发现它的集合被另一个迭代器修改了,或是被该集合自身的方法修改了,就会跑出一个ConcurrentModificationException异常。
(也存在例外情况,文末已给出)
例:
情况一:
情况二:
避免该异常应遵循原则:
可以根据需要为一个集合关联多个迭代器,前提是这些迭代器只能读取集合。或者,可以关联一个能同时读写的迭代器。
对上述例子可以修改为:
修改一:
修改二(和原例的需求不符合,目的为演示上述避免异常的原则):
例外:
链表只跟踪对列表的结构性修改,例如,添加和删除链接。set方法不被视为结构性修改,也就是说在使用set方法时并不受上述原则约束。
例: