Больше 10? Вы нам не подходите

  • 5
  • Недоступна
Перевалочный пункт Оддиозо ищет сотрудников. Единственное условие: количество конечностей у них не должно превышать более десяти конечностей (мы не знаем, откуда взялась такая дискриминация). Поможем им программой, в которой создим множество чисел(Set<Integer>), занесем туда 20 различных чисел, а затем удалить из множества все числа больше 10.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (229)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Artem Andronnikov9 уровень
позавчера, 15:10
Задача заставляет использовать итератор напрямую, решения основанные например на создании нового списка и копирования в него чисел меньше 10, с последующим возвратом нового списка не проходят валидацию, хотя выполняют поставленное условие.
Елена12 уровень
5 декабря, 08:55
Тремя способами решила,но заработало только через Iterator.
Сергей12 уровень, Москва
21 ноября, 08:40
Почему без этой строчки не проходит проверку? else if (text <= 10){}
leksa13 уровень, Москва
15 ноября, 10:23
подсказка (если кому надо) проверить, верно ли компилируется программа можно при помощи следующего кода (добавляем в main):
Set<Integer> set1 = createSet();
Set<Integer> set2 = removeAllNumbersGreaterThan10(set1);
set2.forEach(System.out::println);
не забываем убрать код перед валидацией (можно закомментить)
Alex40 уровень
25 ноября, 08:05
А можно так:
System.out.println(removeAllNumbersGreaterThan10(createSet()));
leksa13 уровень, Москва
25 ноября, 10:49
можно и так, главное, чтобы понятно было, что именно делает код.
14 ноября, 18:22
Если будете писать через iterator, вместо set.remove(i);(например) iterator.remove();(ОБЯЗАТЕЛЬНО БЕЗ i!). Честно говоря, сам не очень понимаю, что это значит, но зато заработало!))
leksa13 уровень, Москва
15 ноября, 10:26
это значит, что обращение в цикле идет не напрямую в set (не получится), а через iterator
Рустам Гизатуллин23 уровень, Москва
10 ноября, 11:33
Можно решить задачу не используя iterator. Для этого нужно создать ещё один Set, который состоит из чисел первого множества >10. Потом применить метод removeAll и удалить из начального множества элементы входящие во второе множество.
Znakarik14 уровень, Москва
7 ноября, 11:15
https://javarush.ru/groups/posts/1935-udalenie-ehlementa-iz-spiska-arraylist Читаем, думаем и проходим на изи
Юрий18 уровень, Екатеринбург
29 октября, 09:45
При реализации метода: removeAllNumbersGreaterThan10 Можно из коллекции удалить другую коллекцию(всё что больше 10). Так показалось проще.
Egor16 уровень
24 октября, 18:47
Поправьте либо условие, либо валидатор. При заполнении массива через new Random().nextInt(20) валидацию не проходит, в условии не сказано, что числа должны быть уникальны.
Nikita Fedotov13 уровень, Санкт-Петербург
24 октября, 20:06
так Set же сам по себе подразумевает, что список из уникальных чисел.
Egor16 уровень
25 октября, 07:22
Прошу прощения, не туда ткнул, пожаловался на сообщение.
Антон9 уровень, Санкт-Петербург
21 октября, 21:42
Прелестно. Пройти множество задач, держать в голове нюансы использования for-each и итератора, решить что-то по новой теме и напрочь забыть те самые нюансы. Зато повторил. Действительно, как ранее и упоминалась комментаторами здесь статья javarush на русском, где объясняется, почему необходимо использовать iterator. Или документация oracle на английском, благодаря которой понял свою ошибку.
Гудини23 уровень, Санкт-Петербург
3 ноября, 12:42
Интересно, что валидатор не принимает вариант с копией списка. Если делать итератор для копии, а удалять элементы у переданного списка. Только iterator.remove();