【发布时间】:2017-06-18 17:03:41
【问题描述】:
Java 初学者在这里。我应该找到参与者在活动中的最佳结果(然后将这个结果与其他人进行比较以找到获胜者等)。
我为一个事件(带有事件结果列表)、参与者(带有参与者的总结果列表)和结果(带有事件 obj、参与者 obj 和结果(double))+命令的程序类创建了类。
到目前为止,我已经编写了一个方法,它将参与者在事件中的最佳结果作为双精度返回,但我需要返回整个结果对象。不确定哪个类应该对此负责(?),但我现在将此方法放在事件类中。
public double getBestResultDouble(Participant p) {
double best = 0;
if (hasResult(p)) {
for (Result r : eventResults) {
if (p.equals(r.getParticipant())) {
double res = r.getResult();
if (res > best) {
best = res;
}
}
}
}
return best;
}
【问题讨论】:
-
将方法签名改为
Result而不是double,然后返回中奖对象。要存储该对象,您可以在方法中创建对象的实例。 -
Java 8:
return Collections.max(eventResults, Comparator.comparingDouble(Result::getResult)); -
4castle 如果您准备提供解释,您可以将其写为答案。
标签: java class object arraylist max