Java 如何做地图的地图列表?
我有这个密码Java 如何做地图的地图列表?,java,java-stream,Java,Java Stream,我有这个密码 Set<String> ccy = groupedPortfolio.values().stream() .map(accountStatusListMap -> accountStatusListMap.values().stream() .map(portfolios -> portfolios.stream().map(Portfolio::getCcy))) .c
Set<String> ccy = groupedPortfolio.values().stream()
.map(accountStatusListMap -> accountStatusListMap.values().stream()
.map(portfolios -> portfolios.stream().map(Portfolio::getCcy)))
.collect(Collectors.toSet());
Set ccy=groupedPortfolio.values().stream()
.map(accountStatusListMap->accountStatusListMap.values().stream())
.map(公文包->公文包.stream().map(公文包::getCcy)))
.collect(收集器.toSet());
用于从groupedPortfolio(从组合映射到货币集的映射)转换。
我的代码中有一个错误
Required type: Set<String>
Provided: Set<Stream<Stream<UUID>>>
所需类型:Set
提供:套
如何正确执行此操作?除了您的解决方案之外,还可以找到其他解决方案:
设置ccy=groupedPortfolio.values().stream()
.map(accountStatusListMap->accountStatusListMap.values().stream().map(集合::流)
.flatMap(x->x)
.collect(收集器.toSet())
.stream().map(公文包::getCcy)
.collect(收集器.toSet())
.collect(收集器.toSet())
.stream()
.map(集合::流)
.flatMap(a->a)
.collect(收集器.toSet())代码>
查看此中的完整代码,我将尝试此方法。将所有数据流转换为一个大型投资组合。 然后通过地图检索所需信息
Set<String> ccy = groupedPortfolio.values()
.stream()
.flatMap(accountStatusListMap -> accountStatusListMap.values().stream())
.flatMap(List::stream).map(Portfolio::getCcy)
.collect(Collectors.toSet());
Set ccy=groupedPortfolio.values()
.stream()
.flatMap(accountStatusListMap->accountStatusListMap.values().stream())
.flatMap(List::stream).map(Portfolio::getCcy)
.collect(收集器.toSet());
您得到的accountId似乎是UUID,而不是字符串货币?请提供有关对象的更多详细信息,并尝试在流中转换集合时使用flatMap
而不是map
,您需要将它们展平。向我们展示groupedPortfolio
@AlexRudenko的类型,我是说getCcy。我修理it@Naman泰曼)