gpt4 book ai didi

java - 为什么这不返回数组列表中最大项目的位置

转载 作者:行者123 更新时间:2023-12-01 06:44:16 24 4
gpt4 key购买 nike

public static int findLargestMark(ArrayList<Result> array)
{
int last = 0;
int largestPOS = 0;
for (int i = 1; i <= array.size(); i++)
{
for (Result s : array)
{
int num = s.getMark();

if (num > last)
{
last = num;
largestPOS = i++;

}
}
}

有人知道为什么这不返回最大值的位置吗?
抱歉,我是 Java 的新手。

最佳答案

  1. largestPOS = i++;

    这是递增的i,这意味着它会跳过下一个数字。如果下一个数字是最大的,您就会错过它。

  2. 您的代码无法编译。您需要一份返回声明。

  3. 您的外循环会跳过第一个元素,因为它从 1 而不是 0 开始。数组和列表是基于 0 的。

  4. 您只需要一个循环即可完成此操作。我会删除内部循环,因为您试图返回索引,而 foreach 循环不会为您提供索引。

  5. 如果您的数组为空,它会将 largestPOS 设置为 0。这是不正确的。在这种情况下,其他算法将返回 -1 表示“未找到索引”。例如,请参阅 String.indexOf

关于java - 为什么这不返回数组列表中最大项目的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com