ConcurrentModificationException возникает, когда коллекция изменяется во время итерации. dzen.ru Это не разрешено большинством классов коллекций. stackoverflow.com
Исключение может появиться даже в однопоточной среде, если создать итератор для коллекции, начать итерацию, изменить коллекцию, а затем продолжить итерацию. stackoverflow.com
Чтобы избежать ошибки, можно использовать следующие методы: dzen.ru
- Использовать итератор для удаления элементов из коллекции. dzen.ru При переборе коллекции нужно вызывать метод remove() у итератора вместо метода remove() у коллекции. dzen.ru
- Создать копию коллекции перед перебором. dzen.ru Нужно создать копию коллекции и перебирать её вместо оригинальной коллекции. dzen.ru
- Использовать синхронизацию. dzen.ru Синхронизация предотвращает одновременный доступ к коллекции из разных потоков, что может привести к изменению коллекции во время её перебора. dzen.ru