我有一个 BigDecimals 列表。List<BigDecimal> amounts = new ArrayList<>()我如何使用 Java 8 流获取上述列表的汇总统计数据,而不会丢失 BigDecimal 最多 3-4 个小数位的精度?
3 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
如果您愿意使用第三方库(与 Java 8 流兼容),您可以使用jOOλ,您可以使用它编写:
Tuple5<
Long,
Optional<BigDecimal>,
Optional<BigDecimal>,
Optional<BigDecimal>,
Optional<BigDecimal>
> tuple
amounts.stream()
.collect(Tuple.collectors(
Agg.sum(),
Agg.count(),
Agg.avg(),
Agg.<BigDecimal>min(),
Agg.<BigDecimal>max()
));
这不会导致精度损失,但可能比聚合双精度慢得多
添加回答
举报
0/150
提交
取消