Sobes.tech
Junior — Middle

Java'da CopyOnWriteArrayList ning ishlash prinsipi va xususiyatlarini tushuntiring

sobes.tech AI

AIdan javob

CopyOnWriteArrayList — bu Java'da List interfeysining iptidosiz xavfsiz amalga oshirilishi bo'lib, yozish vaqtida nusxa olish strategiyasidan (copy-on-write) foydalanadi.

Ishlash prinsipi:

  • Har bir o'zgartirish operatsiyasida (qo'shish, o'chirish, yangilash) ichki massivning yangi nusxasi yaratiladi.
  • O'qish blokirovkalarisiz, to'g'ridan-to'g'ri joriy massivdan amalga oshiriladi.

Xususiyatlar:

  • Tez-tez o'qish va kam o'zgarishlar bo'ladigan holatlar uchun juda mos.
  • Blokirovkalar yo'qligi sababli yuqori o'qish tezligi.
  • O'zgarishlar qimmatga tushadi, chunki butun massiv nusxalanadi.
  • Iteratorlar ConcurrentModificationException xabarini bermaydi va har doim yaratish vaqtida o'zgarmagan ma'lumotlar nusxasi bilan ishlaydi.

Foydalanish misoli:

CopyOnWriteArrayList<String> ro'yxat = new CopyOnWriteArrayList<>();
ro'yxat.add("A");
ro'yxat.add("B");

for (String s : ro'yxat) {
    System.out.println(s);
}

ro'yxat.add("C"); // yangi nusxa yaratiladi

Bunday ro'yxat, masalan, voqealar obunachilarini saqlash uchun qulay, chunki qo'shish/olib tashlash kamroq bo'ladi, lekin bildirishlar ko'p bo'ladi.