java统计ListOdsMaterialDocumentItem isVmiItems中字段QuantityInEntryUnit这个字段是String类型累计和。并且避免出现精度损失的情况使用效率最高java8的方式
使用Java 8的方式,可以使用Stream API来实现对List
假设List
首先,需要将QuantityInEntryUnit字段转换为BigDecimal类型,以避免精度损失。然后,使用Stream的map方法将String类型的QuantityInEntryUnit转换为BigDecimal类型。接着,使用reduce方法对转换后的BigDecimal类型的字段进行累计求和。
示例代码如下:
import java.math.BigDecimal;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<OdsMaterialDocumentItem> isVmiItems = ...; // 假设isVmiItems为要统计的列表
BigDecimal totalQuantity = isVmiItems.stream()
.map(item -> new BigDecimal(item.getQuantityInEntryUnit())) // 将QuantityInEntryUnit字段转换为BigDecimal类型
.reduce(BigDecimal.ZERO, BigDecimal::add); // 对转换后的字段进行累计求和
System.out.println("Total Quantity: " + totalQuantity);
}
}
class OdsMaterialDocumentItem {
private String quantityInEntryUnit;
public String getQuantityInEntryUnit() {
return quantityInEntryUnit;
}
public void setQuantityInEntryUnit(String quantityInEntryUnit) {
this.quantityInEntryUnit = quantityInEntryUnit;
}
}
以上代码将QuantityInEntryUnit字段转换为BigDecimal类型,然后使用reduce方法对转换后的字段进行累计和,并将结果存储在totalQuantity变量中。最后,打印出累计和的结果。
请根据实际情况修改OdsMaterialDocumentItem类的定义,确保字段和getter方法的正确性。
原文地址: https://www.cveoy.top/t/topic/i7Tu 著作权归作者所有。请勿转载和采集!