在和Array中查找最大值

noo*_*mer 2 java arrays

我已经查看了其他问题但不完全是我在这里遇到的问题,这是我现有的代码

public class Qn3 {
    public static void displayHighestMark(String[] names,int[] marks, int count)
    {
        int mark = 0;
        int currentArrayPosition;
       for(int i=0;i <= names.length;i++)
       {

          if(mark <= marks[i])
              mark = marks[i];
          currentArrayPosition  = i;
       }
       System.out.println(name[i]+" with marks "+mark);
    }

    public static void main(String[] args)
    {
        String[] names = new String[]{"jack","hello","A","b","c","d"};// = new String[];

         int[] marks = new int[]{1,2,3,8,5,6};
        displayHighestMark(names,marks, 45);
    }

}
Run Code Online (Sandbox Code Playgroud)

所以基本上我试图找到标记数组中的最高标记.但我得到了ArrayIndexOutOfBoundsException的预期

kos*_*osa 5

 for(int i=0;i <= names.length;i++)
Run Code Online (Sandbox Code Playgroud)

应该

 for(int i=0;i < names.length;i++)
Run Code Online (Sandbox Code Playgroud)

因为你试图获得marks超出你所获得的范围的索引ArrayIndexOutOfBoundsException.数组索引从0开始,所以当你进行循环和查找总是需要查找<而不是<=

请阅读本教程.

编辑:

if(mark <= marks[i])
{
              mark = marks[i];
          currentArrayPosition  = i;
}
Run Code Online (Sandbox Code Playgroud)