Java数组返回最高的数组索引

时间:2014-02-11 03:43:46

标签: java max

我应该编写一个程序,在未排序的整数数组中找到最大的索引。

  

使用以整数数组作为参数的方法。该方法应搜索数组并返回最大值的索引。

所以我编写了一个返回最高值的程序,例如它返回13作为最高数字而不是索引2.那么我将如何返回索引而不是最高数字呢?如果这是一个简单的解决方案,我的其余代码看起来是否正确?谢谢!

public class LargestInteger 
{
    public static void main(String[] args)
    {
        int[] largeArray = {5,4,13,7,7,8,9,10,5};

        System.out.println(findLargest(largeArray));
    }

    public static int findLargest(int array[])
    {
        int largest = array[0];

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

        return largest;
    }
}

5 个答案:

答案 0 :(得分:3)

在java 8中,您可以简单地执行此操作:

获得最高分:

int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(IntStream.of(largeArray).max().getAsInt());
  

结果:1​​3

总结一下:

System.out.println(IntStream.of(largeArray).sum());
  

结果:68

答案 1 :(得分:2)

也可以用,

int[] largeArray     = {5,4,13,7,7,8,9,10,5};
int   largestElement = findLargest(largeArray);
int   index          = Arrays.asList(5,4,13,7,7,8,9,10,5).indexOf(largestElement);

答案 2 :(得分:1)

您需要保留并存储最大的索引。试试这个:

public static int findLargest(int array[])
{
    int largest = array[0];
    int largestIndex = 0;

    for(int i = 0; i < array.length; i++)
    {
        if(array[i] > largest) {
            largest = array[i]; 
            largestIndex =i;
        }  
    }

    return largestIndex;
}

答案 3 :(得分:0)

在方法的末尾创建一个for循环,以及一个像index这样的变量。搜索列表并查找变量是否匹配,记住每次都增加index变量。

示例:

int index = 0;
for (int i : array)
{
    if (i == largest)
    {
         break;
    }
    index++;
}
return index;

答案 4 :(得分:0)

您可以添加获取最大数量和数组的其他方法,然后搜索该数字的索引:

public class LargestInteger 
{
    public static void main(String[] args)
    {
        int[] largeArray = {5,4,13,7,7,8,9,10,5};

        System.out.println(indexOfLargest(largeArray, findLargest(largeArray)));
    }

    public static int findLargest(int array[])
    {
        int largest = array[0];

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

        return largest;
    }

    public static int indexOfLargest(int array[], int number)
    {

        for (int i = 0; i < array.length; i++) {
            if (array[i] == number)
                return i;            
        }

        return -1;
    }

}