我有一个List<LedgerEntry> ledgerEntries
,我需要计算creditAmount和debitAmount的总和。流:一次计算总计的差异
class LedgerEntry{
private BigDecimal creditAmount;
private BigDecimal debitAmount;
//getters and setters
}
我已经实现了本作,
BigDecimal creditTotal = ledgeredEntries.stream().map(p ->p.getCreditAmount()).
reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal debitTotal = ledgeredEntries.stream().map(p ->p.getDebitAmount()).
reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal sumCreditDebit = creditTotal.subtract(debitTotal);
这看起来像我遍历List
两次。有没有办法一次完成这项工作,而无需两次蒸汽清单?
谢谢。那很快。 在同一张纸条上,如果我分别需要两个值(即:creditTotal和debitTotal分开)会怎么样。 – Krishan
@Krishan欢迎您。你能否分别需要两个值来详细说明你的意思? – CKing
就像在我的问题,如果我需要creditTotal和debitTotal值分别以后使用,我可以通过迭代通过列表一次吗?对同一个列表使用stream()两次似乎就是遍历列表两次?或者情况并非如此,编译器会优化流式传输? – Krishan