本文目录导读:

这是一个Java案例,用于统计球员评分最高者是谁,我会提供一个完整的示例,包括球员类定义、数据录入和最高评分统计。
完整代码示例
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 球员类
class Player {
private String name;
private double score;
private String position;
public Player(String name, double score, String position) {
this.name = name;
this.score = score;
this.position = position;
}
public String getName() {
return name;
}
public double getScore() {
return score;
}
public String getPosition() {
return position;
}
@Override
public String toString() {
return "球员姓名: " + name + ", 评分: " + score + ", 位置: " + position;
}
}
// 主类
public class PlayerScoreStatistics {
public static void main(String[] args) {
// 方式一:静态数据测试
System.out.println("=== 方式一:静态数据测试 ===");
testWithStaticData();
// 方式二:用户输入数据
System.out.println("\n=== 方式二:用户输入数据 ===");
testWithUserInput();
}
// 静态数据测试方法
public static void testWithStaticData() {
// 创建一个球员列表
List<Player> players = new ArrayList<>();
players.add(new Player("詹姆斯", 9.8, "前锋"));
players.add(new Player("库里", 9.5, "后卫"));
players.add(new Player("杜兰特", 9.7, "前锋"));
players.add(new Player("保罗", 9.1, "后卫"));
players.add(new Player("戴维斯", 9.3, "中锋"));
// 找出评分最高的球员
Player highestScored = findHighestScoredPlayer(players);
System.out.println("所有球员信息:");
for (Player p : players) {
System.out.println(p);
}
System.out.println("\n评分最高的球员是: " + highestScored.getName());
System.out.println("详细资料: " + highestScored);
}
// 用户输入测试方法
public static void testWithUserInput() {
Scanner scanner = new Scanner(System.in);
List<Player> players = new ArrayList<>();
System.out.print("请输入球员数量: ");
int count = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
// 输入球员信息
for (int i = 0; i < count; i++) {
System.out.println("\n请输入第 " + (i + 1) + " 位球员信息:");
System.out.print("姓名: ");
String name = scanner.nextLine();
System.out.print("评分 (0-10): ");
double score = scanner.nextDouble();
scanner.nextLine(); // 消耗换行符
System.out.print("位置 (前锋/后卫/中锋): ");
String position = scanner.nextLine();
players.add(new Player(name, score, position));
}
// 找出最高分球员
Player highestScored = findHighestScoredPlayer(players);
System.out.println("\n========== 统计结果 ==========");
System.out.println("所有球员信息:");
// 使用索引遍历
for (int i = 0; i < players.size(); i++) {
System.out.println((i + 1) + ". " + players.get(i));
}
System.out.println("\n评分最高的球员是: " + highestScored.getName());
System.out.println("详细资料: " + highestScored);
scanner.close();
}
// 找出评分最高的球员方法
public static Player findHighestScoredPlayer(List<Player> players) {
if (players == null || players.isEmpty()) {
return null;
}
Player highest = players.get(0);
for (Player player : players) {
if (player.getScore() > highest.getScore()) {
highest = player;
}
}
return highest;
}
// 扩展方法:找出所有最高分的球员(可能出现并列)
public static List<Player> findAllHighestScoredPlayers(List<Player> players) {
List<Player> highestPlayers = new ArrayList<>();
if (players == null || players.isEmpty()) {
return highestPlayers;
}
double maxScore = findHighestScoredPlayer(players).getScore();
for (Player player : players) {
if (player.getScore() == maxScore) {
highestPlayers.add(player);
}
}
return highestPlayers;
}
}
改进版本(面向对象更完善)
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
// 球员管理类
class PlayerManager {
private List<Player> players;
public PlayerManager() {
this.players = new ArrayList<>();
}
// 添加球员
public void addPlayer(Player player) {
players.add(player);
}
// 批量添加球员
public void addPlayers(List<Player> newPlayers) {
players.addAll(newPlayers);
}
// 移除球员
public boolean removePlayer(String name) {
return players.removeIf(p -> p.getName().equals(name));
}
// 获取评分最高的球员
public Player getHighestScoredPlayer() {
if (players.isEmpty()) {
return null;
}
return players.stream()
.max(Comparator.comparingDouble(Player::getScore))
.orElse(null);
}
// 获取所有评分最高的球员(处理并列情况)
public List<Player> getAllHighestScoredPlayers() {
Player highest = getHighestScoredPlayer();
if (highest == null) {
return new ArrayList<>();
}
List<Player> result = new ArrayList<>();
for (Player p : players) {
if (p.getScore() == highest.getScore()) {
result.add(p);
}
}
return result;
}
// 按评分排序
public void sortByScore() {
players.sort(Comparator.comparingDouble(Player::getScore).reversed());
}
// 获取球员列表
public List<Player> getPlayers() {
return new ArrayList<>(players);
}
// 显示所有球员
public void displayAllPlayers() {
int index = 1;
for (Player p : players) {
System.out.println(index++ + ". " + p);
}
}
}
public class PlayerScoreDemo2 {
public static void main(String[] args) {
PlayerManager manager = new PlayerManager();
// 添加球员数据
manager.addPlayer(new Player("球员A", 8.9, "前锋"));
manager.addPlayer(new Player("球员B", 9.5, "后卫"));
manager.addPlayer(new Player("球员C", 9.5, "中锋")); // 与B并列最高
manager.addPlayer(new Player("球员D", 8.7, "后卫"));
System.out.println("所有球员:");
manager.displayAllPlayers();
System.out.println("\n评分最高的球员:");
Player highest = manager.getHighestScoredPlayer();
System.out.println(highest);
System.out.println("\n所有最高评分的球员:");
List<Player> topPlayers = manager.getAllHighestScoredPlayers();
for (Player p : topPlayers) {
System.out.println(p);
}
System.out.println("\n按评分从高到低排序:");
manager.sortByScore();
manager.displayAllPlayers();
}
}
运行示例
=== 方式一:静态数据测试 ===
所有球员信息:
球员姓名: 詹姆斯, 评分: 9.8, 位置: 前锋
球员姓名: 库里, 评分: 9.5, 位置: 后卫
球员姓名: 杜兰特, 评分: 9.7, 位置: 前锋
球员姓名: 保罗, 评分: 9.1, 位置: 后卫
球员姓名: 戴维斯, 评分: 9.3, 位置: 中锋
评分最高的球员是: 詹姆斯
详细资料: 球员姓名: 詹姆斯, 评分: 9.8, 位置: 前锋
=== 方式二:用户输入数据 ===
请输入球员数量: 3
请输入第 1 位球员信息:
姓名: 张三
评分 (0-10): 8.5
位置 (前锋/后卫/中锋): 前锋
请输入第 2 位球员信息:
姓名: 李四
评分 (0-10): 9.2
位置 (前锋/后卫/中锋): 后卫
请输入第 3 位球员信息:
姓名: 王五
评分 (0-10): 9.0
位置 (前锋/后卫/中锋): 中锋
========== 统计结果 ==========
所有球员信息:
1. 球员姓名: 张三, 评分: 8.5, 位置: 前锋
2. 球员姓名: 李四, 评分: 9.2, 位置: 后卫
3. 球员姓名: 王五, 评分: 9.0, 位置: 中锋
评分最高的球员是: 李四
详细资料: 球员姓名: 李四, 评分: 9.2, 位置: 后卫
代码说明
主要功能:
- 数据录入:支持静态数据和用户输入两种方式
- 统计功能:找出评分最高的球员
- 扩展功能:处理并列最高分的情况、按评分排序等
核心方法:
findHighestScoredPlayer():遍历找出最高分球员findAllHighestScoredPlayers():找出所有并列最高分的球员sortByScore():按评分排序
面向对象设计:
- Player类:封装球员信息(姓名、评分、位置)
- PlayerManager类:管理球员数据和统计操作
- 使用Java集合框架(List、ArrayList)存储数据
这个案例展示了Java面向对象编程的基本概念,包括封装、集合操作和算法实现。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播