Java:Method查找位置而不是数组最高值的值

时间:2013-12-14 00:02:13

标签: java arrays methods

所以我有一个应该在我的数组中找到最高值的方法。 写如下:

static public int findIndexOfMax(int[] intList, int countOfInts)
{
    int largest = intList[0];
    for (int i = 1; i < intList.length; i++)
    {
        if (intList[i] > largest)
        {
            largest = intList[i];
        }
    }
    return countOfInts;
}

我的问题是它不打印VALUE,它打印出最高值的LOCATION

输出的代码:

int indexLargestValue = findIndexOfMax( intList, countOfInts);
    System.out.println("\nReq #3a: The largest value in the array is at array index " + indexLargestValue );  
    System.out.println("Req #3b: The largest values in the array is " + intList[ indexLargestValue ] );

我哪里错了?

最高值是113 .....

证明输出:

The largest value in the array is at array index 12

1 个答案:

答案 0 :(得分:4)

您的问题是您要返回countOfInts而不是largest

static public int findIndexOfMax(int[] intList, int countOfInts)
{
    int largest = intList[0];
    for (int i = 1; i < intList.length; i++)
    {
        if (intList[i] > largest)
        {
            largest = intList[i];
        }
    }
    return largest; // <<== Here
}

如果这是您所需要的,请将findIndexOfMax重命名为findMax

如果您需要找到位置,请按如下方式更改函数体:

int largest = 0;
for (int i = 1; i < intList.length; i++)
{
    if (intList[i] > intList[largest])
    {
        largest = i;
    }
}
return largest;

注意:两个版本都需要检查数组中是否至少包含一个值,以避免抛出异常。