java案例统计射门次数哪队更多?

wen java案例 1

Java 案例:统计射门次数哪队更多

下面是一个完整的 Java 示例,模拟统计两支球队的射门次数并判断哪队射门更多。

java案例统计射门次数哪队更多?

完整代码

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
public class ShotStatistics {
    // 球队名称常量
    private static final String TEAM_A = "红队";
    private static final String TEAM_B = "蓝队";
    public static void main(String[] args) {
        // 模拟一场比赛:随机生成射门数据
        Map<String, Integer> shotStats = simulateMatch();
        // 输出统计结果
        printStatistics(shotStats);
        // 判断哪队射门更多
        String winner = compareShots(shotStats);
        System.out.println("\n>>>  " + winner);
    }
    /**
     * 模拟一场比赛,随机生成两队的射门次数
     */
    private static Map<String, Integer> simulateMatch() {
        Random random = new Random();
        Map<String, Integer> stats = new HashMap<>();
        // 红队射门 5~20 次,蓝队射门 5~20 次
        int teamAShots = 5 + random.nextInt(16);
        int teamBShots = 5 + random.nextInt(16);
        stats.put(TEAM_A, teamAShots);
        stats.put(TEAM_B, teamBShots);
        return stats;
    }
    /**
     * 打印射门统计
     */
    private static void printStatistics(Map<String, Integer> stats) {
        System.out.println("========== 射门统计 ==========");
        for (Map.Entry<String, Integer> entry : stats.entrySet()) {
            System.out.printf("%s 射门次数: %d 次%n", entry.getKey(), entry.getValue());
        }
    }
    /**
     * 比较两队射门次数,返回结论字符串
     */
    private static String compareShots(Map<String, Integer> stats) {
        int shotsA = stats.get(TEAM_A);
        int shotsB = stats.get(TEAM_B);
        if (shotsA > shotsB) {
            return TEAM_A + " 射门更多(" + shotsA + " vs " + shotsB + ")";
        } else if (shotsA < shotsB) {
            return TEAM_B + " 射门更多(" + shotsB + " vs " + shotsA + ")";
        } else {
            return "两队射门次数相同(" + shotsA + " vs " + shotsB + ")";
        }
    }
}

运行结果示例

========== 射门统计 ==========
红队 射门次数: 14 次
蓝队 射门次数: 9 次
>>>  红队 射门更多(14 vs 9)

如果数据来自用户输入

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class ShotStatisticsInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Map<String, Integer> stats = new HashMap<>();
        System.out.print("请输入红队射门次数: ");
        stats.put("红队", scanner.nextInt());
        System.out.print("请输入蓝队射门次数: ");
        stats.put("蓝队", scanner.nextInt());
        // 打印
        System.out.println("\n========== 射门统计 ==========");
        stats.forEach((team, shots) ->
                System.out.println(team + " 射门次数: " + shots + " 次"));
        // 比较
        int red = stats.get("红队");
        int blue = stats.get("蓝队");
        System.out.println("\n>>> ");
        if (red > blue) {
            System.out.println("红队射门更多(" + red + " vs " + blue + ")");
        } else if (red < blue) {
            System.out.println("蓝队射门更多(" + blue + " vs " + red + ")");
        } else {
            System.out.println("两队射门次数相同(" + red + " vs " + blue + ")");
        }
        scanner.close();
    }
}

关键知识点

知识点 说明
HashMap 用键值对存储"球队 → 射门次数",方便扩展多支球队
Map.Entry 遍历 遍历所有球队的统计数据
Random 模拟比赛生成随机数据
printf / %n 格式化输出,%n 是跨平台换行符
if-else 分支 比较大小,输出不同结论

扩展建议

  1. 多队支持:把 HashMap 改为接收 N 支球队,用 Collections.max() 找出射门最多的球队:
    String maxTeam = Collections.max(stats.entrySet(), Map.Entry.comparingByValue()).getKey();
  2. 持久化:将结果写入文件(Files.writeString)。
  3. 面向对象:定义 Team 类(队名、射门次数、进球数等),更贴近真实场景。
  4. 多场比赛:用 List<Match> 累计整个赛季的射门数据求和比较。

如果你需要多队对比或从文件/数据库读取数据的版本,可以告诉我具体需求 😊

抱歉,评论功能暂时关闭!