在java中填充数组

时间:2014-02-04 14:38:59

标签: java arrays fill

你好stackoverflow用户,我试图初始化并用数字填充我的数组,然后找到它的最大值,但是当我开始填充数组时,我得到零或相同的数字,我输入或ArrayIndexOutOfBoundsException或数组停止填充,我尝试了几天,但我真的不知道现在该做什么,我有逻辑上的错误,请帮忙。

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        int[] array = initializeArray();
        int max = max(array);
        System.out.println(max);
    }
    public static int[] initializeArray() throws IOException {


        Scanner in = new Scanner(System.in);

        int Numbers[] = new int[5];

        if (in.hasNext())
        {
        for(int NumCntr = 0 ; NumCntr< Numbers.length ;NumCntr++)
        {
            Numbers[NumCntr] = in.nextInt();


        }
            System.out.println(Numbers);

        }

        return Numbers;
    }


    public static int max(int[] array) {


        int maxt = 0;

        for(int i=0;i < 5;i++)
        {
            if(array[i] >  array[i+1])
                maxt = array[i];
        }


        return maxt;




    }
}

2 个答案:

答案 0 :(得分:3)

数组大小为5,但在最低值为i的情况下,您将其递增1,因此尝试访问array[5]array[4+1]),这会导致您{ {1}}。

ArrayIndexOutOfBoundsException

答案 1 :(得分:0)

更改您的最高级别&#39;对此的方法。您正在将每一行与下一行进行比较。例如5,3,2,4,1最终会为4.您需要存储最高的一个,与之相比较,然后返回最后一个。

public static int max(int[] array) {
 if(array.length == 0)
     return; //array should have elements

 int maxt = array[0]; 

 for(int i=1;i < array.length;i++)
 {
     if(array[i] >  maxt)
        maxt = array[i];
 }
 return maxt;
}