将数组发送到方法时出现OutofBound异常

时间:2016-09-30 12:32:31

标签: arrays indexoutofboundsexception

公共类I5Exc1a {

public static int[] reverse(int[] array)
{
    int[] local = array;
    int i = local.length;
    int j = 0;
    int[] arrayR = new int[i];

    for (;i>-1; i--)
    {
        arrayR[j] = array[i];
        j++;
    }
    return arrayR;
}

}

它应该接收一个数组并反转它。但是当我对它进行测试时,它给了我超出预期的效果。我尝试通过制作一个额外的阵列来修复它。我认为问题在于数组的长度没有正确地传递给i。有谁知道我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

你是从i = local.length开始的,而且已经超出界限。

看看这个数组:

[0, 1, 2] - 3个项目length = 3,但如果你array[3]没有这样的元素,则元素2位于索引号2,开始来自0。在i--循环之前for