网络片得分详情数据分析 - 列和与平均值计算
这是一个sheet页 /**
* 导出得分详情的头部标题。
*/
private List<List
/**
* 导出得分详情的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 著作权归作者所有。请勿转载和采集!