Sobes.tech
Junior — Middle

Агар дар дохили давраи foreach унсурро аз коллексия хориҷ кунед, чӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

Егер сіз Java-да foreach (enhanced for loop) ішіндегі коллекциядан элементті жоюға тырыссаңыз, ConcurrentModificationException қателігі пайда болады. Бұл оның ішкі итераторы коллекциядағы өзгерістерді бақылап отырғандықтан және тікелей жою оның жағдайын бұзатындықтан болады.

Элементтерді қауіпсіз жою үшін, итераторды ашық пайдаланып, оның remove() әдісін қолдану керек:

List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (item.equals("b")) {
        iterator.remove(); // қауіпсіз жою
    }
}
Агар дар дохили давраи foreach унсурро аз коллексия… - sobes.tech