我有一个自定义对象项,其中有两个字段金额和税额。我有一个Itemized对象的数组,并且我希望对同一流中的两个字段求和。以下是我如何计算两个字段的总和。

double totalAmount = Arrays.stream(getCharges()).map(Itemized::getAmount).reduce(0.0, Double::sum));
double totalTax = Arrays.stream(getCharges()).map(Itemized::getTax).reduce(0.0, Double::sum));

我有什么办法不必解析两次流并且可以一次性将两个字段相加?我不希望对totalTax和totalAmount求和,但要分别求和。我当时在看收集器,但找不到任何可以一口气汇总多个字段的示例。

最佳答案

使用for循环?

double taxSum = 0;
double amountSum = 0;
for (Itemized itemized : getCharges()) {
    taxSum += itemized.getTax();
    amountSum += itemized.getAmount();
}

09-26 18:50