public static HashSet<Integer> createSet() {
// напишите тут ваш код
HashSet<Integer> list = new HashSet<>();
for (int i = 0; i < 20; i++) {
list.add(i);
}
return list;
}
public static HashSet<Integer> removeAllNumbersGreaterThan10(HashSet<Integer> set) {
// напишите тут ваш код
HashSet<Integer> list = createSet();//если эту строку убираю, и далее меняю ссылки list на set, то всё работает
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer digit = iterator.next();
if (digit > 10) {
iterator.remove();
}
}
return list;
}
Илья
14 уровень
Парни, подскажите плиз, почему такой код не работает? Нет, правильнее сказать - код работает, но валидатор не пропускает по последнему пункту....
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
28 апреля 2019, 14:12
не совсем понял вопрос, что проходит валидацию, что не проходит...
Если комментировать что вижу:
public static HashSet<Integer> removeAllNumbersGreaterThan10(HashSet<Integer> set)
метод на вход получает определенную коллекцию set, с которой нужно удалять элементы по определенной логике.
поэтому метод HashSet<Integer> list = createSet(); и далее работа с переменной list это неверно.
Твой код тогда затирает аргумент и работает как:
public static HashSet<Integer> removeAllNumbersGreaterThan10()
так как входящий аргумент игнорируется, а валидатор посылает свою коллекцию для проверки.
А на выходе будет получать обработанную твою.
Поэтому код в таком варианте не соответствует условиям.
+1