簡體   English   中英

如何創建用於查找數組中最大元素的方法

[英]How to Create Method for Finding Largest Element in Array

public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    int numberOfRows, numberOfColumns;
    double arrayElements[][] = null;                                        
    int index[] = null;

    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];              //this command allocates memory for the array arrayElements

    for (int row = 0; row < numberOfRows; row++)
    {
        for (int column = 0; column < numberOfColumns; column++)
        {
            System.out.print("Enter the Value for Row [" + row + "], Column " + "[" + column + "]: ");
            arrayElements[row][column] = keyboard.nextDouble();
        }
    }

    System.out.printf("\n Two-Dimensional Array: %d rows x %d columns\n", numberOfRows, numberOfColumns);
         for (int row = 0; row < numberOfRows; row++)
        {
            System.out.printf("Row %3d:", row);
           for (int column = 0; column < numberOfColumns; column++) 
           {
               System.out.printf("%7.1f", arrayElements[row][column] );
           }
            System.out.println();

         index = locateLargest( arrayElements );
}
}
         public static int[] locateLargest( double[][] arrayx2 ){

         }

大家好,

我正在嘗試編寫一種方法,用於在二維數組中查找最大的元素,然后將具有最高值的元素的索引返回到一維數組'index'。 我已經寫了簽名,但是任何人都可以幫我找出如何實際編寫將搜索二維數組的每個元素並找到數量最大的索引位置的方法的方法嗎?

非常感謝!

/*Finds max value in an Array*/
public int maxValue(int array[]){
  List<Integer> list = new ArrayList<Integer>();
  for (int i = 0; i < array.length; i++) {
    list.add(array[i]);
  }
 return Collections.max(list);
}

對於二維數組,請使用:

int maxValue = 0;
System.out.println("\nMax values in 2D array: ");
for (int i = 0; i < twodArray.length; i++) {
    for (int j = 0; j < twodArray[i].length; j++) {
        if (twodArray[i][j] > maxValue) {
           maxValue = twodArray[i][j];
        }
    }
    System.out.println("Max value of row " + i + ": " + maxValue);
}

參考: https : //stackoverflow.com/a/5877271/1848929

首先,如果您希望方法的返回數組包含最大的元素以及索引,則返回類型應為double []而不是int [],因為矩陣元素的類型為double。 下面的方法將返回一個包含三個元素的數組。 第一個元素是行索引,第二個元素是列索引,第三個元素是元素值。 如果要使用下面的代碼,請確保將返回類型以及代碼中的索引類型更改為double []。 我希望這是有幫助的。

    // first we assume the largest element is the one located at row 0, and 
    //column 0, then we compare it with the other elements in the matrix  
    public static double[] locateLargest( double[][] arrayx2 ){
    double max = arrayx2[0][0];
    int row = 0, col = 0;
    double[] indexAndMaxVal = new double[3];
    for (int i = 0; i < arrayx2.length; i++) {
        for (int j = 0; j < arrayx2[i].length; j++) {
            if (arraux2[i][j] > max) {
                maxValue = arrayx2[i][j];
                row = i; 
                col = j 
            }
       }     
    }
    indexAndMaxVal[0] = row;
    indexAndMaxVal[1] = col;
    indexAndMaxVal[2] = max;
    return indexAndMaxVal;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM