Sobes.tech
Junior — Middle

Kolleksiyada elementlərin silinməsini maneəsiz edərkən nə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da kolleksiyanı təkrarlayarkən, elementləri birbaşa ondan silməyə çalışsanız (məsələn, kolleksiyanın metodundan istifadə etməklə), bu, ConcurrentModificationException-ə səbəb olacaq. Bu, iterator kolleksiyada dəyişiklikləri izlədiyi və onun metodları xaricində silmələrin təkrarlama bütövlüyünü pozduğu üçün baş verir.

Elementləri təkrarlama zamanı düzgün üsul, iteratorin özünün remove() metodundan istifadə etməkdir:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (şərt) {
        iterator.remove(); // təhlükəsiz silmə
    }
}

Bu şəkildə, silmə iteratorin işinə mane olmadan həyata keçiriləcək və heç bir istisna baş verməyəcək.