使用Java 8的方式,可以使用Stream API来实现对List中字段QuantityInEntryUnit的累计和,并避免精度损失的情况。

假设List isVmiItems为要统计的列表,QuantityInEntryUnit字段为String类型,表示数量。

首先,需要将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方法的正确性。

java统计ListOdsMaterialDocumentItem isVmiItems中字段QuantityInEntryUnit这个字段是String类型累计和。并且避免出现精度损失的情况使用效率最高java8的方式

原文地址: https://www.cveoy.top/t/topic/i7Tu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录