Sobes.tech
Junior — Middle

Kolleksiyadagi elementlarni o‘chirishni to‘xtatib qo‘ysangiz, nima bo‘ladi?

sobes.tech AI

AIdan javob

Java'da kolleksiyada takrorlash vaqtida elementlarni to'g'ridan-to'g'ri o'chirishga harakat qilsangiz (masalan, kolleksiyaning metodidan foydalanib), bu ConcurrentModificationException xatosiga olib keladi. Bu, iterator kolleksiyadagi o'zgarishlarni kuzatib borishi va uning metodlari tashqarisida o'chirishlar takrorlashning yaxlitligini buzishi bilan bog'liq.

Elementlarni takrorlash davomida to'g'ri usul — iteratorning o'zining remove() metodidan foydalanish:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (shart) {
        iterator.remove(); // xavfsiz o'chirish
    }
}

Shu tarzda, o'chirish iteratorning ishiga ta'sir qilmaydi va hech qanday xato yuzaga kelmaydi.