Sobes.tech
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.concurrent paketidan ipga xavfsiz kolleksiyalarni, masalan, ConcurrentHashMap, CopyOnWriteArrayList ni ishlatish.
  • Kolleksiyaga kirishni synchronized bloklari 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
}