【发布时间】:2012-10-08 19:27:17
【问题描述】:
我有两个不同的函数来尝试在 ArrayList 中找到最大值。 我有两个,因为我第一次看到它们是否会返回相同的值,然后是性能时间。
但是,它们正在复制相同的值,但它似乎是 ArrayList 的最后一个值,无论它是否最大。我认为它可能是取键而不是取值。
代码如下,我认为这只是一个简单的错误,但谁能指出我正确的方向?
double highest = fitnessArray.get(0);
for (int s = 0; s <fitnessArray.size(); s++){
if (fitnessArray.get(s)>highest)
highest=fitnessArray.get(s);
}
System.out.println("highest fitness = " + highest
+ " indoexOf = " + fitnessArray.indexOf(highest));
double highestFitness;
highestFitness = Collections.max(fitnessArray);
System.out.println("lowest fitness 2 = " + highestFitness );
【问题讨论】:
-
对
indexOf()的调用是 100% 冗余的,以及对get()的两次调用。 -
您的代码看起来不错,我试过了,它给了我正确的值。
fitnessArray中有什么内容? -
另外,你的 for 循环应该从索引 1 开始,因为你已经在 for 循环之前检查了索引 0。
标签: java collections arraylist