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

  • 5
  • Недоступна
Перевалочный пункт Оддиозо ищет сотрудников. Единственное условие: количество конечностей у них не должно превышать более десяти конечностей (мы не знаем, откуда взялась такая дискриминация). Поможем им программой, в которой создим множество чисел(Set<Integer>), занесем туда 20 различных чисел, а затем удалить из множества все числа больше 10.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (209)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Сергей11 уровень, Екатеринбург
суббота, 06:42
Несмотря на то, что removeAllNumbersGreaterThan10() должен возвращать Set, удалять числа нужно именно из переданного set и возвращать именно его. По-моему так можно было обойтись и без возврата.
Алексей 9 уровень, Санкт-Петербург
9 августа, 07:40
set.removeIf(element -> element > 10);
Shukurbek T11 уровень
20 июня, 17:57
while( set.size()!=20 ) set.add ( random.nextInt() );
BariO8 уровень, Nizhniy Novgorod
2 часа назад
non-static method cannot be referenced from a static context почему так?
Hukiro9 уровень, Иркутск
18 июня, 05:11
Возник вопрос по итератору: Из этой лекции https://javarush.ru/quests/lectures/questsyntax.level08.lecture02 , я думал, что
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
эквивалентно записи
for (String text : set)
и что в втором случае не явно создается итератор для перебора, но если мы обратимся к итератору из сокращенной записи:
for (int x : set) {
        if (x>10) iterator.remove();
        }
компилятор будет ругаться на переменную iterator, которую мы не объявили. И собственно вопрос, для удаления в таком случае нужно всегда прописывать полную версию итератора, или есть какая-то хитрость?
Евгений18 уровень, Санкт-Петербург
24 июня, 18:18
Удалять элементы можно только с помощью итератора, foreach здесь будет выдавать ошибку компилятора. Здесь об этом упоминают.
Галков Владислав Евгеньевич14 уровень, Екатеринбург
11 мая, 20:18
Забегая немножечко вперед нашел элегантное решение! set.removeIf (digit -> digit>10);
Rus20 уровень, Астана
27 июня, 11:55
я вставил вместо digit - x и у меня не сработало почему? set.removeIf (x -> x>10); неужели так принципиально вставлять именно digit?
Галков Владислав Евгеньевич14 уровень, Екатеринбург
27 июня, 16:29
Не знаю, не должно быть принципиально, какое название дать.
Justinian36 уровень, Киев
28 июня, 11:25
имя переменной может быть любое, главное чтобы имя уже не было использовано в рамках блока кода. Метод полезный, только уточню, что digit это разряд, односимвольное нумерическое представление, в нашем случае мы работаем с числами - number: set.removeIf(number -> number > 10); или set.removeIf(n -> n > 10);
Александр9 уровень, Москва
8 мая, 08:23
ужас и морока решать через итератор, equals. используйте removeIf.
Volodya15 уровень, Минск
5 мая, 06:36
Замечания, отличные от замечания ниже: 1. В первой части используйте обыкновенный цикл и ничего не мудрите. 2. Удаляйте через итератор (https://javarush.ru/quests/lectures/questsyntax.level08.lecture02) в этой лекции все подробно описано с list <String>. 3. В части main ничего писать не надо, в задании не сказано, да и так проходит. Сложность средняя, в удалении 10 чисел один if добавить, да и все. Надеюсь, был полезен
Volodya15 уровень, Минск
5 мая, 06:36
И еще, тоже думал сделать через рандом. Он тут вообще не нужен.
Wladyslaw20 уровень
17 июня, 13:57
Я через рандом сделал - прошло и так. Там еще проверка в цикле тогда нужна ибо если не уникальное значение - в сет оно не попадет.
Виталий17 уровень
28 апреля, 20:12
Замечания по задаче от того, кто ее таки осилил: 1. В первой части цифры вводите вручную, и не повторяющиеся, через цикл не примет (хотя цикл и не нарушает условия). 2. Удаляйте через итератор. 3. public static void main(String[] args) они забыли написать что сюда нужно прописать вызов функции, в которую передать другую функцию. Вобщем сложность задачи нихрена не средняя ))
Роберт13 уровень, Москва
2 мая, 22:07
У меня прошло без выполнения третьего пункта, но из-за того что цикл не принимает, пришлось потратить время
Kirill Sadovnikov16 уровень, Санкт-Петербург
4 мая, 21:43
1. Random в помощь, компьютеры нужны для автоматизации + while 2. - 3. Вызов функции не нужен, все запускается на сервере с JUnit
andrii16 уровень
24 марта, 22:54
for(int i = 0; i < 20; i ++){ numbers.add(1 + i);
Мария19 уровень, Санкт-Петербург
16 апреля, 12:49
можно просто numbers.add(i); зачем добавлять 1?
andrii16 уровень
18 апреля, 08:30
prosto tak :)
Demid13 уровень
18 марта, 11:46
все кто не хочет запариваться с ручным вводом цифр - юзайте math.random c циклом
while (numbers.size()<20)
(не for) и еще подсказка, у класса Set есть замечательный метод
removeIf
Иван Мозгачев13 уровень, Москва
15 апреля, 02:00
Дополню небольшой статьей про предикаты: https://metanit.com/java/tutorial/9.3.php Правда тут еще про лямбды желательно почитать.