在 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn