📜  Java中的 IntStream min() 示例(1)

📅  最后修改于: 2023-12-03 14:42:47.966000             🧑  作者: Mango

Java中的 IntStream min() 示例

Java中的IntStream是一种流式编程方式对整数进行操作的类。在IntStream类中,有一个min()方法可以用来找到流中最小的元素。

方法说明

IntStream的min()方法用于找到流中最小的元素。

语法

方法的语法为:

OptionalInt min();
返回值

方法返回一个OptionalInt对象,其中包含了流中最小的元素。如果流是空的,则方法返回一个空的OptionalInt对象。

简单使用示例

下面是一个简单的Java程序,演示了如何使用IntStream的min()方法来查找一个整数数组中的最小值。

int[] array = {2, 5, 1, 7, 3};

OptionalInt result = Arrays.stream(array).min();

if (result.isPresent()) {
    System.out.println("The minimum value is " + result.getAsInt());
} else {
    System.out.println("The stream is empty.");
}

程序运行结果为:

The minimum value is 1

在上面的代码中,我们首先定义了一个整数数组array。然后,我们使用Arrays.stream()方法将这个数组转换为一个IntStream流。接下来,我们使用min()方法查找流中的最小值。最后,我们使用OptionalInt.getAsInt()方法获取找到的最小值。

复杂使用示例

下面是一个稍微复杂一些的Java程序,演示了如何通过一个包含多个整数数组的列表,找到列表中最小的不为负数的值。

List<int[]> list = new ArrayList<>();
list.add(new int[]{1, -2, 3, -4, 5});
list.add(new int[]{-1, 2, -3, 4, -5});
list.add(new int[]{});

OptionalInt result = list.stream()
                        .flatMapToInt(Arrays::stream)
                        .filter(e -> e >= 0)
                        .min();

if (result.isPresent()) {
    System.out.println("The minimum non-negative value is " + result.getAsInt());
} else {
    System.out.println("The stream is empty or contains only negative values.");
}

程序运行结果为:

The minimum non-negative value is 1

在上面的代码中,我们首先定义了一个包含多个整数数组的列表list。然后,我们使用stream()方法将这个列表转换为一个流。接着,我们使用flatMapToInt()方法将流中的每个整数数组转换为一个IntStream流。接下来,我们使用filter()方法排除掉小于0的整数。最后,我们使用min()方法查找流中的最小值。

总结

在Java中,使用IntStream的min()方法可以轻松地找到整数流中的最小元素。无论是简单的数组,还是包含多个数组的复杂结构,都可以通过使用IntStream流式编程的方式来进行有效的操作。