私は現在、私たちはループのネストされた3のこの構造を持っている、働いている:のJavaストリーム(またはそれ以上の並列ストリーム)としてのために、各ループのネストされた3
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())))
.
私は今、結果リストにそれをすべて置く方法がわからないとどのようにストリームを正しく閉じます。 私は、あなたがコレクションを実行する前flatmap
方法を使用して、ネストされたStream
構造をフラット化する必要があります>あなたが私を助けることができます:)
使用.collect(コレクター.toList())最後のドットがどこにあるのかを指定するには、 –
の結果を集めてください。それは残念ながら動作しません... – Bofrostmann