在 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