繁体   English   中英

如何将 Map 映射到列表?

[英]How to do Map of maps to List?

我有这个代码

Set<String> ccy = groupedPortfolio.values().stream()
            .map(accountStatusListMap -> accountStatusListMap.values().stream()
                    .map(portfolios -> portfolios.stream().map(Portfolio::getCcy)))
            .collect(Collectors.toSet());

用于从 groupedPortfolio 转换为映射的 map 到投资组合中的一组货币。 在我的代码中我有错误

Required type: Set<String>
Provided: Set<Stream<Stream<UUID>>>

如何正确执行?

我会试试这个。 将所有流转换为一个大的投资组合。 然后通过 map 检索您想要的信息。

Set<String> ccy = groupedPortfolio.values()
     .stream()
     .flatMap(accountStatusListMap -> accountStatusListMap.values().stream())
     .flatMap(List::stream).map(Portfolio::getCcy)
     .collect(Collectors.toSet());

找到您的解决方案之外的另一种解决方案:

Set<String> ccy = groupedPortfolio.values().stream().map(accountStatusListMap -> accountStatusListMap.values().stream().map(Collection::stream).flatMap(x -> x).collect(Collectors.toSet()).stream().map(Portfolio::getCcy).collect(Collectors.toSet())).collect(Collectors.toSet()).stream().map(Collection::stream).flatMap(a -> a).collect(Collectors.toSet());

从此链接查看完整代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM