Your map
步骤转换aStream<Integer>
to a 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
or
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));