我有一个 `Stream>`,我想把这些 Map 合并在一起,但要保留列表中的重复值,因此最终类型应为 `Map>`。有没有办法做到这一点?我知道 `toMap` 收集器有一个二元函数可以选择返回哪个值,但它能否跟踪转换后的列表呢?
例如,如果 `a` 是一个 `Stream>`:
例如,如果 `a` 是一个 `Stream>`:
a.flatMap(map -> map.entrySet().stream()).collect(
Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (val1, val2) -> ??
);
groupingBy(Function, Collector)
,并省略HashMap::new
。此外,对于那些喜欢方法引用的人,你可以使用a.map(Map::entrySet).flatMap(Set::stream)
。 - shmosel