我有此代码
Set<String> ccy = groupedPortfolio.values().stream()
.map(accountStatusListMap -> accountStatusListMap.values().stream()
.map(portfolios -> portfolios.stream().map(Portfolio::getCcy)))
.collect(Collectors.toSet());
用于groupedPortfolio的翻译,groupedPortfolio是将地图映射到投资组合中的货币集的地图。 在我的代码中,我有错误
Required type: Set<String>
Provided: Set<Stream<Stream<UUID>>>
如何正确执行?
答案 0 :(得分:1)
我会尝试的。将所有流转换为投资组合中的一大流。 然后通过地图检索您想要的信息。
Set<String> ccy = groupedPortfolio.values()
.stream()
.flatMap(accountStatusListMap -> accountStatusListMap.values().stream())
.flatMap(List::stream).map(Portfolio::getCcy)
.collect(Collectors.toSet());
答案 1 :(得分:0)
找到除您之外的另一种解决方案:
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());
从此 link 中查看完整的代码。