意外的数组索引超出范围异常

时间:2014-05-12 11:22:29

标签: java exception

在带有“here”注释的行上,我得到一些输入数据的索引超出范围错误。它并不总是发生。甚至在程序在我的机器上运行时也不会发生这种情况。它发生在项目团队成员在他的笔记本电脑上运行项目时。

我知道有关实际索引的异常输出,但由于原因我现在没有这些信息。我很快就可以用完整的例外更新。

public int getDistance(int[] arrayA, int[] arrayB) {
    int[][] array = new int[arrayA.length][arrayB.length];

    for (int i = 0; i < arrayA.length; i++)
        array[i][0] = i;

    for (int i = 0; i < arrayB.length; i++)
        array[0][i] = i; // Here

我在这里删除了方法,因为其余部分不相关。

如您所见,我从两个单维数组(arrayA和arrayB)创建一个二维数组,该数组的宽度和高度等于两个单维数组的长度。然后我将“最左边”列设置为递增数字,将“最上面”行设置为递增numnbers。

如果您需要更多代码,我可以发布。

2 个答案:

答案 0 :(得分:0)

当数组的长度中至少有一个为0时,它会抛出ArrayIndexOutOfBoundsException。试试例如:

int[] arrayA = new int[4];
int[] arrayB = new int[0];

getDistance(arrayA, arrayB);

答案 1 :(得分:0)

我的猜测是当其中一个列表长度为0时发生异常,即。让我们说arrayA是问题并且长度为0,然后创建数组[0] [arrayB.length]然后当你尝试调用数组[0] [i]时它无法访问元素0并抛出一个OutofBoundsException