快速失败行为——迭代器的错误
快速失败行为——迭代器的异常
关于迭代器的'快速失败行为'
快速失败行为是指某个线程在迭代Collection 的时候,通常不允许其他线程修改该Collection 的内容,因为这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。
如果要解决此异常的话,应该用iterator自带的remove方法去除当前的obj,如iterator.remove()。而不是使用collection.remove(obj)这个方法.
关于迭代器的'快速失败行为'
快速失败行为是指某个线程在迭代Collection 的时候,通常不允许其他线程修改该Collection 的内容,因为这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。
如果要解决此异常的话,应该用iterator自带的remove方法去除当前的obj,如iterator.remove()。而不是使用collection.remove(obj)这个方法.