篮球转身过人次数统计 - Java案例
下面用Java实现一个简单的转身过人次数统计程序,可以统计多名球员中谁转身过人次数最多。

场景说明
统计一场篮球比赛中,几名球员的转身过人(spin move)次数,找出次数最多的球员。
基础版(数组 + 手动统计)
import java.util.Scanner;
public class SpinMoveCounter {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入球员人数:");
int n = sc.nextInt();
String[] names = new String[n];
int[] counts = new int[n];
// 输入每个球员的姓名和转身次数
for (int i = 0; i < n; i++) {
System.out.print("请输入第" + (i + 1) + "位球员姓名:");
names[i] = sc.next();
System.out.print("请输入该球员转身过人次数:");
counts[i] = sc.nextInt();
}
// 找出最大值
int max = counts[0];
int maxIndex = 0;
for (int i = 1; i < n; i++) {
if (counts[i] > max) {
max = counts[i];
maxIndex = i;
}
}
// 输出结果
System.out.println("\n=== 转身过人统计结果 ===");
for (int i = 0; i < n; i++) {
System.out.println(names[i] + ":" + counts[i] + " 次");
}
// 考虑并列第一
System.out.print("\n转身过人次数最多的是:");
boolean first = true;
for (int i = 0; i < n; i++) {
if (counts[i] == max) {
if (!first) System.out.print("、");
System.out.print(names[i] + "(" + max + "次)");
first = false;
}
}
System.out.println();
sc.close();
}
}
运行示例
请输入球员人数:4
请输入第1位球员姓名:欧文
请输入该球员转身过人次数:8
请输入第2位球员姓名:哈登
请输入该球员转身过人次数:5
请输入第3位球员姓名:东契奇
请输入该球员转身过人次数:8
请输入第4位球员姓名:库里
请输入该球员转身过人次数:3
=== 转身过人统计结果 ===
欧文:8 次
哈登:5 次
东契奇:8 次
库里:3 次
转身过人次数最多的是:欧文(8次)、东契奇(8次)
面向对象版(推荐)
球员类
public class Player {
private String name;
private int spinCount; // 转身过人次数
public Player(String name, int spinCount) {
this.name = name;
this.spinCount = spinCount;
}
public String getName() { return name; }
public int getSpinCount() { return spinCount; }
@Override
public String toString() {
return name + ":" + spinCount + " 次";
}
}
统计工具类
import java.util.*;
import java.util.stream.Collectors;
public class SpinMoveAnalyzer {
/** 统计转身过人次数最多的球员(支持并列) */
public static List<Player> findTopPlayers(List<Player> players) {
// 找出最大次数
int max = players.stream()
.mapToInt(Player::getSpinCount)
.max()
.orElse(0);
// 过滤出所有达到最大次数的球员
return players.stream()
.filter(p -> p.getSpinCount() == max)
.collect(Collectors.toList());
}
/** 按次数从高到低排序输出 */
public static void printRanking(List<Player> players) {
System.out.println("=== 转身过人排行榜 ===");
players.stream()
.sorted(Comparator.comparingInt(Player::getSpinCount).reversed())
.forEach(p -> System.out.println(p));
}
}
测试主类
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Player> players = new ArrayList<>();
players.add(new Player("欧文", 8));
players.add(new Player("哈登", 5));
players.add(new Player("东契奇", 8));
players.add(new Player("库里", 3));
players.add(new Player("保罗", 6));
// 打印排行榜
SpinMoveAnalyzer.printRanking(players);
// 找最多的人
List<Player> tops = SpinMoveAnalyzer.findTopPlayers(players);
System.out.print("\n转身过人最多的是:");
tops.forEach(p -> System.out.print(p.getName() + "(" + p.getSpinCount() + "次) "));
System.out.println();
}
}
输出结果
=== 转身过人排行榜 ===
欧文:8 次
东契奇:8 次
保罗:6 次
哈登:5 次
库里:3 次
转身过人最多的是:欧文(8次) 东契奇(8次)
统计某球员累计次数(进阶)
如果需要统计某球员整场比赛每次转身过人的记录,例如从一系列动作中统计:
import java.util.*;
import java.util.stream.Collectors;
public class ActionStats {
public static void main(String[] args) {
// 模拟一场比赛中所有球员的动作记录
String[] actions = {
"欧文:转身", "欧文:三分", "东契奇:转身", "欧文:转身",
"哈登:转身", "东契奇:转身", "欧文:上篮", "哈登:转身",
"东契奇:转身", "欧文:转身"
};
// 统计每个球员转身次数
Map<String, Long> spinMap = Arrays.stream(actions)
.filter(a -> a.endsWith(":转身"))
.map(a -> a.split(":")[0])
.collect(Collectors.groupingBy(name -> name, Collectors.counting()));
// 输出统计
spinMap.forEach((name, cnt) ->
System.out.println(name + " 转身过人次数:" + cnt));
// 找最多的人
String king = spinMap.entrySet().stream()
.max(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.orElse("无");
System.out.println("\n转身过人王是:" + king
+ "(" + spinMap.get(king) + "次)");
}
}
输出
欧文 转身过人次数:4
东契奇 转身过人次数:3
哈登 转身过人次数:2
转身过人王是:欧文(4次)
| 技术点 | 说明 |
|---|---|
int[] 数组 |
基础版存储次数,手动比较 |
| 最大值查找 | 遍历比较,可处理并列情况 |
Player 类 |
面向对象封装 |
Stream API |
filter/map/max/sorted/collect |
Collectors.groupingBy |
按球员分组计数 |
Comparator |
排序比较器 |
扩展方向
- 从文件/数据库读取数据:改为读取 CSV 或 JDBC 查询。
- 图形化界面:Swing / JavaFX 显示统计图。
- 多维度统计:转身次数 + 成功率 + 得分效率。
- 并列第一处理:如方案一/二所示,用 List 收集所有最大值球员。
如果你需要针对某个具体场景(比如从文件读取、接入数据库、GUI展示)的代码,告诉我,我可以进一步扩展。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播