如何创建用于查找数组中最大元素的方法?
搞定二维double数组找最大元素的方案
嘿,我来帮你把这个需求落地!先补全你那没写完的main方法输入逻辑,再实现一个实用的最大元素查找方法,还能顺便记录最大值的位置哦~
完整可运行代码
import java.util.Scanner; public class ArrayMaxFinder { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); int numberOfRows, numberOfColumns; double arrayElements[][] = null; int index[] = new int[2]; // 用这个数组存最大值的行、列下标,index[0]=行,index[1]=列 System.out.print("Enter number of rows in array: "); numberOfRows = keyboard.nextInt(); System.out.print("Enter number of columns in array: "); numberOfColumns = keyboard.nextInt(); // 给二维数组分配内存 arrayElements = new double[numberOfRows][numberOfColumns]; // 读取用户输入的每个数组元素 System.out.println("Start entering array elements:"); for (int row = 0; row < numberOfRows; row++) { for (int col = 0; col < numberOfColumns; col++) { System.out.printf("Input element at [%d][%d]: ", row, col); arrayElements[row][col] = keyboard.nextDouble(); } } // 调用自定义方法找最大值 double maxValue = findMaxElement(arrayElements, index); // 输出结果 System.out.printf("The maximum element is %.2f, located at position [%d][%d]\n", maxValue, index[0], index[1]); keyboard.close(); } // 核心方法:查找二维数组的最大值,同时把下标存入传入的index数组 private static double findMaxElement(double[][] arr, int[] index) { // 初始化最大值为数组第一个元素 double max = arr[0][0]; index[0] = 0; index[1] = 0; // 遍历整个二维数组 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { if (arr[i][j] > max) { max = arr[i][j]; // 更新最大值的下标 index[0] = i; index[1] = j; } } } return max; } }
关键部分说明
- 补全的输入循环:用嵌套for循环遍历每一行每一列,给用户明确的输入提示,确保数组被完整初始化。
- findMaxElement方法:这是实现需求的核心:
- 先把数组第一个元素设为初始最大值,同时记录它的下标。
- 逐个遍历数组元素,一旦发现更大的值,就更新最大值和对应的下标。
- 下标记录功能:利用传入的int数组,把最大值的位置也返回给调用者,结果更实用。
小提示
如果你需要增加输入校验(比如防止用户输入负数行数/列数),可以在读取numberOfRows和numberOfColumns后加个判断逻辑,提示用户重新输入合法值~
内容的提问来源于stack exchange,提问作者Merilyn
相关产品推荐
相关产品推荐

