Не как не могу понять с удалением
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
Iterator<Cat> iterator = cats.iterator();
for(Cat cat : cats){
pets.remove(cat);
}
}
В лекции пишет нельзя удалять таким способом, а пропустила и ответ выдал правильный.
Так все же можно или нет?
Василий
9 уровень
remove в Set
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел Безумный учёный Expert
19 сентября 2021, 15:13
Цикл перебирает элементы коллекции cats, а удаление производится из коллекции pets. Это вполне допустимо, поскольку коллекция cats, используемая в цикле, не изменяется.
Если же попытаться удалить элемент из коллекции cats, будет сгенерировано исключение ConcurrentModificationException:
0