Сам придумал для себя задачу (для закрепления tемы stream), и сам же не могу её решить.
Опишу задачу довольно абстрактно, тут главное не код, а метод решения.
Дано:
Есть стрим с ингредиентами, пусть это будет Stream, необходимо сделать стрим с пиццами (Pizza), которые сделаны из данных ингредиентов по рецепту (Recipe).
Мой ход мыслей.
1) Очистим стрим от ингредиентов, которых нет в рецепте:
stream.filter(ing -> !recipe.contains(ing))
2) Дальше из этих ингредиентов необходимо собрать пиццу, первое что приходит в голову -- метод map(), который преобразует эл-ты стрима, но проблема в том, что пицца состоит из множества ингредиентов, которые надо собрать из иcходного стрима, но на вход ему подаётся только один параметр, как можно решить эту проблему и собрать стрим пицц из стрима ингредиентов?
Спасибо!
Стрим, как следует из его названия - это поток. Сколько вплыло, столько выплыло. Единственный способ собрать что-то из нескольких элементов стрима - написать коллектор.