欢迎访问宙启技术站
智能推送

Java函数式编程实例:使用max()和min()函数查找列表中的最大/最小值

发布时间:2023-09-23 09:12:39

Java函数式编程提供了一种方便的方法来处理集合和列表等数据结构。其中,max()和min()函数是两个常见的函数,用于查找列表中的最大值和最小值。

首先,我们需要导入Java的函数式编程库,即java.util.stream包。然后,我们可以使用stream()方法将列表转换为一个流对象,以便于进行函数式操作。

以下是一个使用max()函数查找列表中最大值的示例代码:

import java.util.Arrays;
import java.util.List;

public class MaxMinExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(10, 5, 8, 20, 15);

        // 使用max()函数查找列表中的最大值
        Integer maxNumber = numbers.stream()
                .max(Integer::compareTo)
                .orElseThrow(NoSuchElementException::new);

        System.out.println("最大值是:" + maxNumber);
    }
}

在上述代码中,我们首先创建一个整数列表numbers,然后通过stream()方法将其转换为一个流对象。接下来,我们使用max()函数查找流中的最大值,通过Integer::compareTo方法来比较数字的大小。最后,我们使用orElseThrow()方法来返回最大值,如果列表为空则抛出NoSuchElementException异常。

运行以上代码,输出结果将是:

最大值是:20

类似地,我们可以使用min()函数来查找列表中的最小值。以下是一个示例代码:

import java.util.Arrays;
import java.util.List;

public class MaxMinExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(10, 5, 8, 20, 15);

        // 使用min()函数查找列表中的最小值
        Integer minNumber = numbers.stream()
                .min(Integer::compareTo)
                .orElseThrow(NoSuchElementException::new);

        System.out.println("最小值是:" + minNumber);
    }
}

在上述代码中,我们使用min()函数来查找列表中的最小值,并使用orElseThrow()方法返回最小值。运行以上代码,输出结果将是:

最小值是:5

通过使用max()和min()函数,我们可以方便地快速查找列表中的最大值和最小值。这是Java函数式编程在处理集合数据时的一种常见用法。