Вы знаете, как использовать Java Stream API?
Примените свои знания о потоках , лямбдах , обработчиках методов и других функциональных вещах Java.
Есть также некоторые задачи, которые заставят думать даже опытных программистов. Попробуйте решить их все.
25 задач доступны сейчас
Репозиторий клона → реализовать методы → Запустить тесты → исправить ошибки
Методы для реализации помещаются в src tasks.StreamTasks . Первоначально они закреплены стандартным UnsupportedOperationException (и тесты знают об этом). Вам необходимо заменить такие линии решением, состоит из потока потока или чего -то, что связано с ним (описание и подсказки для каждой задачи предоставляются).
Запрещено использовать стандартные циклы ( for , while как, do-while , рекурсия) вообще и условия ( if , if-else , ...) вне операций по потоке. Основная цель этого проекта - научить вас, как использовать функциональный подход на практике. Одним из возможных исключений из чистой функциональной парадигмы является объявление и использование локальных переменных.
Из -за этого проекта ориентировано на начинающих , не требуется зависимые библиотеки . Если вы знаете, как добавлять зависимости и действительно знаете, что тогда вы можете сделать это вручную (но, будьте указаны, все задачи могут быть решены с помощью только стандартной библиотеки Java).
Основное требование - JVM из 11 версий (или выше)
Запустите основной метод из tasks.StreamTasksMain Class в вашей предпочтительной IDE или запустите test.(cmd|sh) .
Флаг -ea требуется для включения ключа assert для проверки тестов. В противном случае все тесты не будут выполняться должным образом.
Программа проверки будет выполнять тесты для всех задач, а затем написать приговор для каждой из задач.
Возможные приговоры:
null ссылку До тех пор, пока вы не решите все задачи с приговором, accepted программа завершится с кодом выхода из ненулевого выхода.
Вы можете запустить программу проверки с example аргумента. Для этого example добавить пример к передаче аргументов в IDE или в конце запуска сценариев: test.cmd example (для Windows) и ./test.sh example (для Unix)
Есть некоторые реализованные задачи в классных tasks.StreamTasksExample example
Не гарантируется, что реализация верна или оптимально;)
Если вы не знаете, как решить какую -то задачу, чем вы можете увидеть решение в tasks.solution.StreamTasksSolution Solution.streamTasksSolution в классе в папке src . Этот класс используется в качестве справочного решения для проверки ответов, поэтому вы можете копировать код вставки в задачу, и эта задача будет принята.
Старайтесь избегать какого -либо взаимодействия с решениями, пока не выполните все задачи :)
Вы также можете использовать задачи из этого проекта для различных задач. Например, вы можете проверить, сколько задач вы можете выполнять в ограниченное время или сколько времени вам понадобится, чтобы решить их все и т. Д.
Версия 0.1.0 доступна здесь
Планы на будущее:
[ ] Восстание числа задач до 100[~] Добавьте больше входных генераторов в тестирование двигателя[✓] Для Map <?, ?> Тип[✓] Для List <List <?>> Тип (и любой уровень корпуса)[ ] Еще[ ] Добавьте больше входных вариаций в тестирование двигателя (сбор FE в качестве расширения другого параметра, который также сбора))[~] Сообщите с некоторыми новыми идеями задач[ ] Разделительные задачи на несколько занятий по темам