我原本期望获得最短的运行时间,但它却打印了 arrayList 中的最后一个主菜。我正在尝试为狗打印一个特定的类(class),当我输入类(class)代码时,它就会起作用。然而,最低的运行时间似乎不起作用。
示例数据
拉兹洛 12.2
凛34.2
Yu 23.3 - 当 Lazlo 应该是获胜狗时,这将被打印为获胜狗。
获胜的狗应该有最短的运行时间,但它会读取最后读取的行并将其打印出来。
private void winningDog(String dogsCode)
{
double runTime = 300;
String winningDog = "";
double winningTime = 0;
for (Dogs dog: dogsList)
{
if(runTime > dog.getTotalTime() && (dog.getCourseCode().equalsIgnoreCase(dogsCode)))
{
winningTime = dog.getTotalTime();
winningDog = dog.getName();
}
}
System.out.printf("%n%s%17s%20s%1.2f%n",
"Winning dog", winningDog,"Time " , winningTime);
}
最佳答案
假设您的 dog.getTotalTime() 没有负值
,您可以更改代码
winningTime = Double.MAX_VALUE; //assigning MAX value to ensure the condition is met at least once(unless all your time values are MAX_VALUE)
然后将您的条件更新为
if(runTime > dog.getTotalTime()..
到
if(winningTime > dog.getTotalTime().. // this would compare winningTime and you're setting the same is the condition matches
关于java - 如何使用 OOP 打印 arrayList 中的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948989/