防止二维数组中的indexoutofboundsexception

时间:2015-10-15 10:59:05

标签: java arrays indexoutofboundsexception

只是想知道我的代码有什么问题。隐藏测试显示无效的数组索引返回为“有效”。

这是我的代码:

/**
 * Check if the array index is inside the grid
 * 
 * @param x - row
 * @param y - column
 * @return true if given index is inside the grid; otherwise false
 */
public boolean validIndex(int x, int y)
{
    boolean result = false;

    for (int i = 0; i < arr.length; i++)
    {
        for (int j = 0; j < arr.length; j++)
        {
            if (i >= 0 && i < arr.length && j >= 0 && j < arr.length)
            {
                result = true;
            }
        }
    }
return result;
}

1 个答案:

答案 0 :(得分:3)

您的代码忽略输入xy索引并始终返回true(除非输入数组有0行)。

检查传递的索引xy,而不是使用这些循环。

您只需要:

if (x >= 0 && x < arr.length && y >= 0 && y < arr[x].length)
    result = true;