Izuzetak ConcurrentModificationException se javlja kada se objekt pokuša modificirati istovremeno kada to nije dozvoljeno. Ovaj izuzetak obično dolazi kada se radi sa klasama Java kolekcije. Na primjer - Nije dozvoljeno da nit modificira kolekciju kada neka druga nit iterira preko nje.
Kako da popravim izuzetak istovremenih modifikacija?
Također možemo izbjeći izuzetak istovremenih modifikacija u okruženju s jednom niti. Možemo koristiti metod za uklanjanje Iteratora da uklonimo objekat iz osnovnog objekta kolekcije. Ali u ovom slučaju, možete ukloniti samo isti objekat, a ne bilo koji drugi objekat sa liste.
Kako spriječiti izuzetak istovremenih modifikacija na mapi?
koristite ConcurrentHashMap. nastavite koristiti jednostavnu HashMap, ali napravite novu mapu na svakoj modifikaciji i mijenjajte mape iza scene (sinhroniziranje operacije prebacivanja ili korištenje AtomicReference)
Koji metod iteratora baca izuzetak istovremene modifikacije?
Ako pozovemo niz metoda na objektu koji krši njegov ugovor, tada objekat izbacuje ConcurrentModificationException. Na primjer: ako tokom iteracije preko kolekcije direktno pokušamo izmijeniti tu kolekciju, tada će dati fail-fast iterator izbaciti ovaj ConcurrentModificationException.
Šta je izuzetak istovremene modifikacije u Java stack overflow?
Ako jedna nit izda niz poziva metoda koji narušavaju ugovor objekta, objekat može izbaciti ovaj izuzetak. Na primjer, ako nit modificira kolekciju direktno dok iterira preko kolekcije sa brzim iteratorom, iterator će izbaciti ovaj izuzetak.