gpt4 book ai didi

java - 使用 Java 8 链接 reduce 的最佳方式

转载 作者:IT老高 更新时间:2023-10-28 20:41:47 25 4
gpt4 key购买 nike

我正在尝试改进以下代码:

BigDecimal total = entity.getAssociate().stream().map(Associates::getPropertyA)
.reduce(BigDecimal.ZERO, BigDecimal::add);
total = entity.getAssociate().stream().map(Associates::getPropertyB)
.reduce(total, BigDecimal::add);
total = entity.getAssociate().stream().map(Associates::getPropertyC)
.reduce(total, BigDecimal::add);
total = entity.getAssociate().stream().map(Associates::getPropertyD)
.reduce(total, BigDecimal::add);

它有效,但确实感觉有更好的方法来做到这一点。有人可以就此事告诉我吗?

最佳答案

如果所有这些属性都是同类型的(好像都是BigDecimal),你可以使用flatMap来创建一个单一的Stream 全部,然后 reduce 到总和:

BigDecimal total = 
entity.getAssociate()
.stream()
.flatMap (a -> Stream.of(a.getPropertyA(),a.getPropertyB(),a.getPropertyC(),a.getPropertyD()))
.reduce(BigDecimal.ZERO, BigDecimal::add);

关于java - 使用 Java 8 链接 reduce 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44925699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com