Изключението ConcurrentModificationException възниква, когато обект се опита да бъде модифициран едновременно, когато това не е позволено. Това изключение обикновено идва, когато човек работи с класове на Java Collection. Например - Не е позволено нишка да променя колекция, когато друга нишка итерира над нея.
Как да коригирам изключение за едновременна модификация?
Можем също да избегнем изключението за едновременна модификация в среда с една нишка. Можем да използваме метода за премахване на Iterator, за да премахнем обекта от основния обект на колекция. Но в този случай можете да премахнете само същия обект, но не и друг обект от списъка.
Как да предотвратите изключение за едновременна модификация на карта?
използвайте ConcurrentHashMap. продължете да използвате проста HashMap, но създайте нова карта на всяка модификация и превключвайте карти зад кулисите (синхронизиране на операцията за превключване или използване на AtomicReference)
Кой метод на итератора хвърля изключение за едновременна модификация?
Ако извикаме поредица от методи за обект, който нарушава неговия договор, тогава обектът хвърля ConcurrentModificationException. Например: ако докато повторяме колекцията, ние директно се опитаме да модифицираме тази колекция, тогава даденият fail-fast iterator ще изхвърли това ConcurrentModificationException.
Какво е изключението за едновременна модификация в препълването на стека на Java?
Ако една нишка издава поредица от извиквания на методи, които нарушават договора на обект, обектът може да изведе това изключение. Например, ако нишка модифицира колекция директно, докато претърсва колекцията с бърз итератор, итераторът ще хвърли това изключение.