我有一个Map<String,Double>
的流,我想收集到一个Map<String,List<Double>>
。有没有人建议如何做到这一点?
谢谢!
答案 0 :(得分:3)
首先,您需要将地图流展平为地图条目流。然后,使用Collectors.groupingBy
和Collectors.mapping
:
Map<String,List<Double>> result = streamOfMaps
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(
Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
答案 1 :(得分:2)
说我有:
Stream<Map<String, Double>> mapStream
然后答案是:
mapStream.map(Map::entrySet)
.flatMap(Collection::stream)
.collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())));