在 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