在 Java 中查詢陣列中的最大數

Rupam Yadav 2023年10月12日
  1. 使用迭代方式查詢陣列中的最大數
  2. 使用 Stream 在陣列中查詢最大數
  3. 使用 Arrays.sort() 查詢陣列中的最大數
在 Java 中查詢陣列中的最大數

陣列包含類似型別的資料。雖然你已經可以讀取所有元素並對其執行多項操作,但本文將向你展示如何在 Java 中查詢陣列中的最大值。

使用迭代方式查詢陣列中的最大數

此方法是從陣列中查詢最大數的傳統方法。它包含一個迭代器,用於遍歷陣列中的每個元素。下面,我們有一個整數陣列 intArray;首先,我們建立一個變數 maxNum 並用 intArray 的第一個元素初始化它。

我們建立了一個增強的 for 迴圈,它接受陣列並在每次迭代中返回每個元素。然後,我們使用 maxNum 檢查每個元素,該元素有 24,一旦找到大於 24 的數字,它就會用 maxNum 中的那個數字替換 24。它將替換 maxNum 中的數字,直到它到達陣列的末尾;否則,它找不到比 maxNum 中的現有值更大的數字。

public class ArrayMax {
  public static void main(String[] args) {
    int[] intArray = {24, 2, 0, 34, 12, 110, 2};

    int maxNum = intArray[0];

    for (int j : intArray) {
      if (j > maxNum)
        maxNum = j;
    }

    System.out.println("Maximum number = " + maxNum);
  }
}

輸出:

Maximum number = 110

使用 Stream 在陣列中查詢最大數

Java 8 引入了 Stream API,它提供了幾種有用的方法。其中之一是 Arrays.stream() 方法,它接受一個陣列並返回一個順序流。在我們的例子中,我們有一個 int 型別的陣列,當我們在流中傳遞它時,它返回一個 IntStream

IntStream 函式帶有一個 max() 方法,可以幫助找到流中的最大值。它返回一個 OptionalInt,描述流也可能有空的 int 值。

最後,由於我們希望將最大數字作為 int,我們將使用 optionalInt.getAsInt() 方法,該方法將結果作為 int 型別返回。

import java.util.Arrays;
import java.util.OptionalInt;
import java.util.stream.IntStream;

public class ArrayMax {
  public static void main(String[] args) {
    int[] intArray = {24, 2, 0, 34, 12, 11, 2};

    IntStream intStream = Arrays.stream(intArray);
    OptionalInt optionalInt = intStream.max();
    int maxAsInt = optionalInt.getAsInt();

    System.out.println("Maximum number = " + maxAsInt);
  }
}

輸出:

Maximum number = 34

使用 Arrays.sort() 查詢陣列中的最大數

此列表中的最後一項技術使用按升序組織陣列的排序方法。為了對陣列進行排序,我們使用函式 Arrays.sort() 並將 intArray 作為引數傳遞。

為了檢視排序操作後陣列的外觀,我們列印它。現在,當陣列被排序並且最大的數位於最左邊的位置時,我們使用 intArray.length - 1 函式獲取它的位置,它位於陣列的最後一個位置。

import java.util.Arrays;

public class ArrayMax {
  public static void main(String[] args) {
    int[] intArray = {24, 340, 0, 34, 12, 10, 20};

    Arrays.sort(intArray);

    System.out.println("intArray after sorting: " + Arrays.toString(intArray));

    int maxNum = intArray[intArray.length - 1];
    System.out.println("Maximum number = " + maxNum);
  }
}

輸出:

intArray after sorting: [0, 10, 12, 20, 24, 34, 340]
Maximum number = 340
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Array