Ваш map
шаг преобразует Stream<Integer>
в Stream<Map<Integer,String>>
. Чтобы собрать это Stream
в один Map
, вы можете написать:
Map<Integer,String> newMap =
newList.stream()
.flatMap(i->myFunc.apply(i).entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, // keyMapper
Map.Entry::getValue, // valueMapper
(first, second) -> first, // mergeFunction
LinkedHashMap::new)); // mapFactory
или
Map<Integer,String> newMap =
newList.stream()
.map(myFunc)
.flatMap(m->m.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, // keyMapper
Map.Entry::getValue, // valueMapper
(first, second) -> first, // mergeFunction
LinkedHashMap::new)); // mapFactory
Конечно, если вам нужно отфильтровать нечетные числа и сопоставить оставшиеся числа с «четными», вы можете просто написать:
Map<Integer,String> newMap =
newList.stream()
.filter(i -> i % 2 == 0)
.collect(Collectors.toMap(Function.identity(),
i -> "even",
(first, second) -> first,
LinkedHashMap::new));