这是一个sheet页 /** * 导出得分详情的头部标题。 */ private List<List> headTitle;

/**
 * 导出得分详情的sheet名称。
 */
private Collection<String> sheetNames;

/**
 * 导出得分详情的内容。
 */
private Collection<List<List<Object>>> contents;

Java怎么求列和并且取平均值保留四位小数, 不用二维数组和不用for循环,不要写死获取,因为有多个列内容:可以使用Java 8的流(Stream)来实现求列和并取平均值的操作。以下是一个示例代码:

import java.util.Collection;
import java.util.List;

public class ScoreCalculator {
    // 计算列和并取平均值
    public static void calculateColumnSumAndAverage(Collection<List<List<Object>>> contents) {
        contents.stream() // 遍历每个sheet页的内容
                .flatMap(sheet -> sheet.stream()) // 将每个sheet页的内容合并成一个流
                .skip(1) // 跳过头部标题行
                .map(row -> (float) row.get(2)) // 获取第3列的数值,并转为float类型
                .reduce((float) 0, Float::sum) // 求和
                .ifPresent(sum -> {
                    float average = sum / contents.size(); // 计算平均值
                    System.out.printf("列和:%.4f,平均值:%.4f%n", sum, average);
                });
    }

    public static void main(String[] args) {
        // 假设已经有一个名为contents的集合包含了导出得分详情的内容
        Collection<List<List<Object>>> contents = ...;

        calculateColumnSumAndAverage(contents);
    }
}

在上述示例代码中,使用了stream()方法将集合转为流,flatMap()方法将每个sheet页的内容合并成一个流,skip()方法跳过头部标题行,map()方法获取第3列的数值并转为float类型,reduce()方法求和,ifPresent()方法在求和结果存在时计算平均值并打印输出。

注意:上述示例代码中假设已经有一个名为contents的集合包含了导出得分详情的内容,你需要根据实际情况进行修改。


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

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