如何将Java一维数组平均值计算代码修改为适配二维数组版本
Java二维数组平均值计算实现
完整可运行代码
import java.util.*; public class Test3{ public static void main(String [] args){ Scanner adnan = new Scanner(System.in); // 录入二维数组行数 System.out.println("Enter the number of rows in the 2D array: "); int rows = adnan.nextInt(); int[][] input = new int[rows][]; // 逐行录入元素 for (int i = 0; i < rows; i++) { System.out.println("Enter the number of elements in row " + (i+1) + ": "); int cols = adnan.nextInt(); input[i] = new int[cols]; System.out.println("Enter " + cols + " numbers for row " + (i+1) + ": "); for (int j = 0; j < cols; j++) { input[i][j] = adnan.nextInt(); } } float average = average(input); System.out.println("Average of all numbers in the 2D array: " + average); adnan.close(); } // 原有一维数组求平均值方法,保留兼容 public static float average(int[] input){ if (input.length == 0) return 0f; float sum = 0f; for (int number : input){ sum += number; } return sum / input.length; } // 新增二维数组求平均值重载方法 public static float average(int[][] input){ float sum = 0f; int totalCount = 0; // 遍历所有行和行内元素 for (int[] row : input) { for (int number : row) { sum += number; } totalCount += row.length; } // 避免空数组除以0异常 return totalCount == 0 ? 0f : sum / totalCount; } }
核心修改说明
- 重载了
average方法,新增支持int[][]类型的二维数组参数,原有一维数组的计算逻辑完全保留,可同时支持两种数组类型的平均值计算 - 二维数组遍历采用两层增强for循环实现,同时累计总元素个数,天然支持每行长度不一致的不规则二维数组场景
- 新增边界判断逻辑,当数组为空或元素总数为0时直接返回0,避免出现算术异常
内容的提问来源于stack exchange,提问作者adnanadel
相关产品推荐
相关产品推荐

