Junior — Middle
Koje metode možete koristiti da biste izbegli izuzetak ConcurrentModificationException prilikom rada sa kolekcijama u višestrukom okruženju?
sobes.tech АИ
Одговор од АИ
Da biste izbegli izuzetak ConcurrentModificationException prilikom rada sa kolekcijama u višestrukom okruženju, možete koristiti sledeće metode:
- Koristite kolekcije bezbedne za niti iz paketa
java.util.concurrent, na primer,ConcurrentHashMap,CopyOnWriteArrayList. - Ručno sinhronizujte pristup kolekciji pomoću blokova
synchronizedili drugih mehanizama sinhronizacije. - Koristite iteratorе koji podržavaju sigurnu modifikaciju, na primer,
ListIteratorza liste. - Kreirajte kopije kolekcija za iteraciju (na primer, pomoću
new ArrayList<>(originalList)), kako biste izbegli promene originalne kolekcije tokom prolaska.
Primer korišćenja CopyOnWriteArrayList:
CopyOnWriteArrayList<String> lista = new CopyOnWriteArrayList<>();
lista.add("item1");
for (String item : lista) {
lista.add("item2"); // neće izazvati ConcurrentModificationException
}