java方法封装一个二维数组a[M][N],求周边元素之和
时间: 2024-10-10 14:04:04 浏览: 33
在Java中,如果你想封装一个二维数组`int a[M][N]`并计算每个元素周围(上、下、左、右四个方向)的元素之和,你可以创建一个方法,采用两个循环遍历数组,并分别检查边界情况。这里是一个简单的示例:
```java
public class ArrayUtils {
public static int sumNeighbors(int[][] a, int i, int j) {
// 检查边界条件
if (i >= 0 && i < a.length && j >= 0 && j < a[0].length) {
int sum = 0;
// 上下左右邻居
sum += (i > 0 ? a[i - 1][j] : 0); // 上
sum += (i + 1 < a.length ? a[i + 1][j] : 0); // 下
sum += (j > 0 ? a[i][j - 1] : 0); // 左
sum += (j + 1 < a[0].length ? a[i][j + 1] : 0); // 右
return sum;
} else {
throw new IllegalArgumentException("Index out of bounds");
}
}
public static void main(String[] args) {
int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.println("Sum of neighbors at (" + i + ", " + j + ") is: " + sumNeighbors(arr, i, j));
}
}
}
}
```
这个`sumNeighbors`方法接受一个索引对`(i, j)`,然后返回该位置及其上下左右四个相邻位置的元素之和。注意,对于数组边界,你需要额外检查以避免数组越界异常。
阅读全文