You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java Stream计算学科平均总分并找出最容易的学科

解决方法

核心逻辑

  1. 按学科维度,累加所有学生在该学科的平均分,得到每个学科的总分
  2. 遍历所有学科的总分,找出数值最高的那个学科

完善后的Java代码实现

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class SubjectScoreAnalyzer {
    public static String findEasiestSubject(List<Map<String, Double>> studentSubjectAverages) {
        // 存储各学科的平均分总和
        Map<String, Double> subjectTotalMap = new HashMap<>();

        // 遍历每个学生的学科平均分,累加对应学科的总分
        for (Map<String, Double> studentScores : studentSubjectAverages) {
            for (Entry<String, Double> scoreEntry : studentScores.entrySet()) {
                String subject = scoreEntry.getKey();
                double avgScore = scoreEntry.getValue();
                // 存在则累加,不存在则初始化为当前值
                subjectTotalMap.put(subject, subjectTotalMap.getOrDefault(subject, 0.0) + avgScore);
            }
        }

        // 筛选出总分最高的学科
        String easiestSubject = null;
        double highestTotal = Double.MIN_VALUE;
        for (Entry<String, Double> totalEntry : subjectTotalMap.entrySet()) {
            if (totalEntry.getValue() > highestTotal) {
                highestTotal = totalEntry.getValue();
                easiestSubject = totalEntry.getKey();
            }
        }

        return easiestSubject;
    }

    // 测试示例
    public static void main(String[] args) {
        // 模拟3名学生的各学科平均分数据
        List<Map<String, Double>> studentData = List.of(
                Map.of("Math", 1.33, "History", 2.66, "Physics", 1.33),
                Map.of("Math", 1.33, "History", 2.66, "Physics", 1.33),
                Map.of("Math", 1.33, "History", 2.67, "Physics", 1.33)
        );

        // 输出结果应为 History
        System.out.println(findEasiestSubject(studentData));
    }
}

关键细节说明

  • 使用HashMap的getOrDefault方法,简化累加逻辑,避免空指针判断
  • 初始化最高总分时用Double.MIN_VALUE,确保能正确匹配所有可能的正数值
  • 测试数据的累加结果完全符合题目示例:Math和Physics总和为3.99,History总和为7.99,最终返回History

内容的提问来源于stack exchange,提问作者Kto Tam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:50:09