public static Set<Integer> createSet() {
Set<Integer> set = new HashSet<>();
for(int i = 0; i<20; i++){
set.add(i);
}
return set;
}
public static Set<Integer> removeAllNumbersGreaterThan10(Set<Integer> set) {
for(Integer s :set){
if (s>10){
set.remove(s);
}
}
return set;
}
public static void main(String[] args) {
}
}
Не проходит по последнему пункту, не понимаю почему?
Слава
1 уровень
Почему не работает?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Grad
21 мая 2020, 11:23
Удалять нельзя напрямую элемент из коллекции в цикле foreach, нужно использовать итератор.
Например так можно (в методе removeAllNumbersGreaterThan10):
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()) {
if (iterator.next().intValue() > 10) iterator.remove();
}
+1
РусланFull Stack Developer в novacom
21 мая 2020, 10:34
прочитай про удаление из колекции, не вижу просто не условия не полный код, но возможно надо через итератор
0