Junior — Middle
Ce metode pot fi utilizate pentru a evita excepția ConcurrentModificationException atunci când lucrați cu colecții într-un mediu multi-thread?
sobes.tech AI
Răspuns de la AI
Pentru a evita excepția ConcurrentModificationException atunci când lucrați cu colecții într-un mediu multi-thread, puteți utiliza următoarele metode:
- Utilizați colecții sigure pentru fire din pachetul
java.util.concurrent, de exemplu,ConcurrentHashMap,CopyOnWriteArrayList. - Sincronizați accesul la colecție manual cu ajutorul blocurilor
synchronizedsau alte mecanisme de sincronizare. - Utilizați iteratori care suportă modificări sigure, de exemplu,
ListIteratorpentru liste. - Creați copii ale colecțiilor pentru iterație (de exemplu, prin
new ArrayList<>(listaOriginală)), pentru a evita modificarea colecției originale în timpul iterației.
Exemplu de utilizare a CopyOnWriteArrayList:
CopyOnWriteArrayList<String> listă = new CopyOnWriteArrayList<>();
listă.add("item1");
for (String item : listă) {
listă.add("item2"); // nu va cauza ConcurrentModificationException
}