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(); // қауіпсіз жою
}
}