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.