Junior — Middle
Ko'p ipli muhitda kolleksiyalar bilan ishlashda ConcurrentModificationException istisnosidan qochish uchun qanday usullar mavjud?
sobes.tech AI
AIdan javob
Ko‘p ipli muhitda kolleksiyalar bilan ishlashda ConcurrentModificationException xatosini oldini olish uchun quyidagi usullarni qo‘llash mumkin:
java.util.concurrentpaketidan ipga xavfsiz kolleksiyalarni, masalan,ConcurrentHashMap,CopyOnWriteArrayListni ishlatish.- Kolleksiyaga kirishni
synchronizedbloklari yoki boshqa sinxronizatsiya mexanizmlari bilan qo‘lda sinxronlashtirish. - Xavfsiz modifikatsiyani qo‘llab-quvvatlovchi iteratorlardan foydalanish, masalan, ro‘yxatlar uchun
ListIterator. - Iteratsiya davomida asl kolleksiyani o‘zgartirmaslik uchun kolleksiyalarning nusxalarini yaratish (masalan,
new ArrayList<>(originalList)orqali).
CopyOnWriteArrayList dan foydalanish misoli:
CopyOnWriteArrayList<String> ro‘yxat = new CopyOnWriteArrayList<>();
ro‘yxat.add("item1");
for (String item : ro‘yxat) {
ro‘yxat.add("item2"); // ConcurrentModificationException xatosi chiqmaydi
}