本文目录导读:

我理解您想了解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 次
关键点说明
- 数据表示:使用
Team类封装球队信息和被射门次数 - 对比逻辑:比较两只或多只球队的被射门次数
- 格式化输出:使用
printf进行漂亮的表格化显示 - 排序功能:按被射门次数排序,便于比较
这个示例展示了如何用Java处理、比较和展示球队防守数据,您可以根据实际需求调整数据结构或输出格式。