Ответ 1
Вы должны получить entrySet
карты и приклеить записи к вызовам вашей двоичной функции:
inputMap.entrySet().stream().map(e->myFun(e.getKey(),e.getValue()));
Результат выше - поток экземпляров T
.
Update
Ваш дополнительный пример подтверждает то, что обсуждалось в комментариях ниже: group by
и sort
относятся к их терминальным операциям. Они должны выполняться в полном объеме, чтобы иметь возможность создавать даже первый элемент вывода, поэтому включение их в качестве нетерминальных операций не покупает ничего с точки зрения производительности/памяти.
Бывает так, что Java 8 определяет sorted
как нетерминальную операцию, однако это решение может привести к обманчивому коду, потому что операция будет блокироваться до тех пор, пока она не получит все восходящие элементы, и им придется сохранять их во время приема.