这个java案例显示被射门次数对比?

wen java案例 7

本文目录导读:

这个java案例显示被射门次数对比?

  1. 简单示例:对比两只球队被射门次数
  2. 进阶版:多球队对比
  3. 输出效果示例
  4. 关键点说明

我理解您想了解Java中如何对比显示被射门次数(比如足球比赛中的数据),这里我提供一个完整的Java示例,展示如何比较和显示两只球队的被射门次数。

简单示例:对比两只球队被射门次数

public class ShotComparison {
    public static void main(String[] args) {
        // 假设两只球队的数据
        Team teamA = new Team("皇家马德里", 8);  // 被射门8次
        Team teamB = new Team("巴塞罗那", 12); // 被射门12次
        // 对比并显示结果
        compareShots(teamA, teamB);
    }
    public static void compareShots(Team team1, Team team2) {
        System.out.println("球队被射门次数对比:");
        System.out.println("----------------------------------------");
        System.out.printf("%-15s %-15s %-10s%n", "球队", "被射门次数", "结果");
        System.out.println("----------------------------------------");
        // 显示两只球队的数据
        System.out.printf("%-15s %-15d %-10s%n", 
            team1.getName(), team1.getShotsAgainst(), 
            team1.getShotsAgainst() < team2.getShotsAgainst() ? "防守更好" : "防守较差");
        System.out.printf("%-15s %-15d %-10s%n", 
            team2.getName(), team2.getShotsAgainst(),
            team2.getShotsAgainst() < team1.getShotsAgainst() ? "防守更好" : "防守较差");
        System.out.println("----------------------------------------");
        // 比较结果
        int diff = Math.abs(team1.getShotsAgainst() - team2.getShotsAgainst());
        if (team1.getShotsAgainst() < team2.getShotsAgainst()) {
            System.out.println(team1.getName() + " 被射门次数更少,防守更好");
            System.out.println("差距:" + diff + " 次");
        } else if (team1.getShotsAgainst() > team2.getShotsAgainst()) {
            System.out.println(team2.getName() + " 被射门次数更少,防守更好");
            System.out.println("差距:" + diff + " 次");
        } else {
            System.out.println("两队被射门次数相同");
        }
    }
}
// 球队类
class Team {
    private String name;
    private int shotsAgainst;  // 被射门次数
    public Team(String name, int shotsAgainst) {
        this.name = name;
        this.shotsAgainst = shotsAgainst;
    }
    public String getName() { return name; }
    public int getShotsAgainst() { return shotsAgainst; }
}

进阶版:多球队对比

import java.util.*;
public class MultiTeamComparison {
    public static void main(String[] args) {
        // 创建多只球队的数据
        List<Team> teams = new ArrayList<>();
        teams.add(new Team("皇家马德里", 8));
        teams.add(new Team("巴塞罗那", 12));
        teams.add(new Team("马德里竞技", 10));
        teams.add(new Team("塞维利亚", 15));
        teams.add(new Team("瓦伦西亚", 7));
        // 按被射门次数排序
        teams.sort(Comparator.comparingInt(Team::getShotsAgainst));
        // 显示排名
        System.out.println("球队被射门次数排名(防守质量):");
        System.out.println("========================================");
        System.out.printf("%-5s %-15s %-15s %-10s%n", "排名", "球队", "被射门次数", "评价");
        System.out.println("========================================");
        for (int i = 0; i < teams.size(); i++) {
            Team team = teams.get(i);
            String evaluation = getEvaluation(team.getShotsAgainst(), teams);
            System.out.printf("%-5d %-15s %-15d %-10s%n", 
                i + 1, team.getName(), team.getShotsAgainst(), evaluation);
        }
        // 显示最佳和最差防守球队
        System.out.println("\n最佳防守球队:" + teams.get(0).getName() + 
            "(被射门 " + teams.get(0).getShotsAgainst() + " 次)");
        System.out.println("最差防守球队:" + teams.get(teams.size()-1).getName() + 
            "(被射门 " + teams.get(teams.size()-1).getShotsAgainst() + " 次)");
    }
    private static String getEvaluation(int shots, List<Team> allTeams) {
        double avg = allTeams.stream()
            .mapToInt(Team::getShotsAgainst)
            .average()
            .orElse(0);
        if (shots < avg - 2) return "优秀";
        if (shots < avg) return "良好";
        if (shots < avg + 2) return "一般";
        return "较差";
    }
}

输出效果示例

球队被射门次数对比:
----------------------------------------
球队            被射门次数      结果     
----------------------------------------
皇家马德里      8              防守更好  
巴塞罗那        12             防守较差  
----------------------------------------
皇家马德里 被射门次数更少,防守更好
差距:4 次

关键点说明

  1. 数据表示:使用 Team 类封装球队信息和被射门次数
  2. 对比逻辑:比较两只或多只球队的被射门次数
  3. 格式化输出:使用 printf 进行漂亮的表格化显示
  4. 排序功能:按被射门次数排序,便于比较

这个示例展示了如何用Java处理、比较和展示球队防守数据,您可以根据实际需求调整数据结构或输出格式。

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