java案例统计球员评分最高者是谁?

wen java案例 2

Java案例:统计球员评分最高者

下面是一个完整的Java案例,演示如何统计球员评分最高者。

java案例统计球员评分最高者是谁?

完整代码

import java.util.*;
public class PlayerScoreDemo {
    // 球员类
    static class Player {
        private String name;
        private int score;
        public Player(String name, int score) {
            this.name = name;
            this.score = score;
        }
        public String getName() { return name; }
        public int getScore() { return score; }
        @Override
        public String toString() {
            return "Player{name='" + name + "', score=" + score + "}";
        }
    }
    public static void main(String[] args) {
        // 1. 准备数据
        List<Player> players = Arrays.asList(
                new Player("梅西", 92),
                new Player("C罗", 95),
                new Player("姆巴佩", 89),
                new Player("哈兰德", 95),
                new Player("内马尔", 88)
        );
        // 2. 找出最高分
        int maxScore = players.stream()
                .mapToInt(Player::getScore)
                .max()
                .orElse(0);
        // 3. 找出所有最高分球员(可能并列)
        List<Player> topPlayers = players.stream()
                .filter(p -> p.getScore() == maxScore)
                .toList();
        // 4. 输出结果
        System.out.println("最高分:" + maxScore);
        System.out.println("评分最高的球员:");
        topPlayers.forEach(System.out::println);
    }
}

运行结果

最高分:95
评分最高的球员:
Player{name='C罗', score=95}
Player{name='哈兰德', score=95}

关键点解析

步骤 方法 说明
求最高分 mapToInt(...).max() 将对象流转换为int流求最大值
筛选最高者 filter(...) 保留评分等于最高分的球员
收集结果 toList() Java 16+ 用法,也可用 collect(Collectors.toList())

传统写法(不用Stream)

如果不想用Stream API,也可以这样写:

Player best = null;
for (Player p : players) {
    if (best == null || p.getScore() > best.getScore()) {
        best = p;
    }
}
System.out.println("最高分球员:" + best);

扩展:处理并列 + 排序

若需要按评分从高到低排序并取第一名:

List<Player> sorted = players.stream()
        .sorted(Comparator.comparingInt(Player::getScore).reversed())
        .toList();
System.out.println("排名第一:" + sorted.get(0));

如果需要我可以再补充从控制台输入球员数据或从文件读取的版本。

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