小编Bof*_*ann的帖子

3嵌套for-each循环为Java Stream(或更好的并行流)

在我目前正在进行的项目中,我们有三个嵌套for循环的构造:

List<OutputDataType> resultList = new ArrayList<>();

for (OrgStructureEntity product : products) {

       for (String region : regions) {

                for (SalesType salesType : SalesType.values()) {

                    resultList.addAll(new SalesRequest(getConnection(),
                            product.getProductMainGroup(), product.getSbu(), planYear, currentPeriod, region, salesType,
                            exchangeRates).calculateSalesKpis());
                }    
       }
}
Run Code Online (Sandbox Code Playgroud)

产品和地区都是套装.resultList是一个带有"OutputDataType"对象的ArrayList.方法calculateSalesKpis()还返回"OutputDataType"对象的列表.应该将所有这些对象添加到resultList中.我想用并行流完成所有这些以使其更快,但我没有比这更进一步:

products.stream()
                .map(product -> regions.stream()
                        .map(region -> Arrays.stream(SalesType.values())
                                .map(salesType -> new SalesRequest(getConnection(),
                                        product.getProductMainGroup(), product.getSbu(), planYear, currentPeriod, region, salesType,
                                        exchangeRates).calculateSalesKpis())))
                .
Run Code Online (Sandbox Code Playgroud)

我现在不知道如何将它全部放在结果列表中以及如何正确关闭流.我希望你能帮帮我 :)

java foreach java-8 java-stream flatmap

3
推荐指数
1
解决办法
618
查看次数

标签 统计

flatmap ×1

foreach ×1

java ×1

java-8 ×1

java-stream ×1