Junior — Middle
Šta se dešava ako sprečimo uklanjanje elemenata iz kolekcije tokom njenog prolaska?
sobes.tech АИ
Одговор од АИ
Ако током прегледа колекције у Јави покушате да избршете елементе директно из ње (на пример, преко метода колекције), то ће довести до ConcurrentModificationException. То се дешава зато што итератор прати промене у колекцији, а брисање ван његових метода нарушава интегритет итерације.
Правилан начин брисања елемената током прегледа је коришћење метода remove() самог итератора:
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (услов) {
iterator.remove(); // безбедно брисање
}
}
На овај начин, брисање неће пореметити рад итератора и неће доћи до изузетка.