Более эффективный способ проверки соседей в двумерном массиве на Java

Привет всем, для нескольких моих заданий в колледже я обнаружил необходимость проверки соседних ячеек в двумерных массивах (сетки). Решение, которое я использовал, - это что-то вроде взлома с использованием исключений, и я ищу способ очистить его, не имея множества операторов if , как у некоторых моих одноклассников. Мое текущее решение -

for ( int row = 0; row < grid.length; row++ ) {
    for ( int col = 0; col < grid.length; col++ ) {
        // this section will usually be in a function
        // checks neighbours of the current "cell"
        try {
            for ( int rowMod = -1; rowMod <= 1; rowMod++ ) {
                for ( int colMod = -1; colMod <= 1; colMod++ ) {
                    if ( someVar == grid[row+rowMod][col+colMod] ) {
                        // do something
                    }
                }
            }
        } catch ( ArrayIndexOutOfBoundsException e ) {
            // do nothing, continue
        }
        // end checking neighbours
    }
}

. Я содрогаюсь при мысли о неэффективности использования исключений, чтобы заставить мой код работать, поэтому я ' Я ищу предложения о том, как я могу избавиться от зависимости от исключений из моего кода, не жертвуя удобочитаемостью, если это возможно, и как я могу сделать этот сегмент кода в целом более эффективным. Заранее спасибо.

9
задан Sean Kelleher 8 November 2010 в 01:08
поделиться