【发布时间】:2016-01-03 20:59:51
【问题描述】:
我有一种方法可以打印出运动员在比赛中的成绩。此方法打印出输入类别的最高分数。问题是它打印出每个运动员的每一个结果。我只希望它打印出每个运动员在输入类别中获得的最高值。我已经广泛搜索了答案,但以我有限的知识无法找到如何去做。所以我的问题是:如何只打印出 1 名运动员的最高值,以便获得真正的记分牌?
void typeOutHighScores() {
ArrayList<Athlete> athletes= AthleteList.getArrayList();
Collections.sort(resultlist);
String categoryToShow = null;
System.out.println("Which category would you like to show highscores for?");
categoryToShow = scanner.nextLine();
categoryToShow = normalize(categoryToShow); //Just makes all letters small with first letter as capital.
category matchedCategory= null;
ArrayList<category> categories = CategoryList.getArrayList();
for (int i = 0; i < categories.size(); i++) {
category c = categories .get(i);
if (c.categoryName().equals(categoryToShow)) {
matchedCategory= c;
break;
}
}
if (matchedCategory== null) {
System.out.println("Couldn't find " + categoryToShow + ".");
} else {
System.out.println("Resultatlist for " + categoryToShow + ": ");
for (int i = 0; i < resultlist.size(); i++) {
Athlete matched = null;
int order = 0;
Result res = resultlist.get(i);
if (res.categoryName().equals(categoryToShow)) {
for (int x = 0; x < athletes.size(); x++) {
Athlete del = athletes.get(x);
if (res.athleteStartNumber() == del.startNumber()) {
matched = del;
order = i + 1;
System.out.println(order + ". " + matched.surName() + " " + matched.lastName()
+ " has the result: " + res.categoryValue());
break;
}
}
}
}
}
}
【问题讨论】:
标签: java if-statement for-loop arraylist