在項目我目前的工作,我們有循環這個構造三個嵌套的:3嵌套的for-each循環爲Java流(或更好的並行流)
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());
}
}
}
產品和地區都設置。 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())))
.
我不知道如何把它所有在結果列表現在如何正確關閉流。 我希望你能幫助我:)
使用.collect(收藏家.toList())終端操作來收集列表中的結果 –
你是說最後一個點在哪裏?這不幸的是不起作用... – Bofrostmann