我在使用Java 8 Stream在哪裏迭代兩個集合,並且在傳遞一個過濾器之後,我想將我在流內部的一個大的變量加到外部bigDecimal變量「restrictionsNumber」總和在流內Bigdecimals
這裏我的代碼:
final BigDecimal restrictionsNumber = cmd.amount.getNumberOfUnits();
order.products()
.stream()
.flatMap(product -> product.getRestrictions()
.stream()
.filter(restriction -> restriction.equals(newProductRestriction))
.map(restriction -> restrictionsNumber.add(product.getAmount()
.getNumberOfUnits())));
最後的地圖是一個地方我正嘗試總結兩個BigDecimals的。 我知道我做錯了什麼。 任何人都可以給我一個關於如何用Stream來做的建議。
我正嘗試從這個古老的時尚代碼
final BigDecimal restrictionsNumber = cmd.amount.getNumberOfUnits();
for (Product product : order.products()) {
for (String oldProductRestriction : product.getRestrictions()) {
if (oldProductRestriction.equals(newProductRestriction)) {
restrictionsNumber = restrictionsNumber.add(product.getAmount()
.getNumberOfUnits());
}
}
}
問候重構。
我仍然不明白你在做什麼。你想擁有所有大整數的總和? – Jatin
只有那些通過這個過濾器「.filter(限制 - > restriction.equals(newProductRestriction))」 – paul
這還不清楚。你可以發佈一個示例輸入/輸出並解釋你想要做什麼? – Tunaki