当前位置: 首页 > 图灵资讯 > 技术篇> 如何在 Java 中使用 Stream API 进行函数式编程?

如何在 Java 中使用 Stream API 进行函数式编程?

来源:图灵教育
时间:2024-08-18 22:30:54

java stream api 它提供了一种函数集合处理方法,可以简单高效地处理数据,通过创建不可变流并使用管道进行转换。常见操作包括过滤、映射、聚合和遍历。在实际案例中使用 stream api 每个部门的总工资按部门对员工进行分组计算,显示出来 stream api 强大的能力。

如何在 Java 中使用 Stream API 进行函数式编程?

如何在 Java 中使用 Stream API 函数编程

Java Stream API 是一组 قدرتمة (powerful) 该工具用于声明和函数操作集合。它为处理数据提供了一种简单高效的方法,消除了传统循环和条件句的需要。

流量创建和管道

立即学习“Java免费学习笔记(深入);

流量是一个不可变元素的序列,可以从各种来源创建,包括集合、数组和生成器。创建流量后,您可以使用一系列称为管道的操作来转换它。管道中的每个操作都会产生一个新的流量,因此它们可以连接在一起,以构建一个复杂的操作序列。

List<Integer> numbers = List.of(1, 2, 3, 4, 5);
Stream<Integer> stream = numbers.stream();

// 使用管道操作流
stream.filter(i -> i % 2 == 0)
    .map(i -> i * i)
    .forEach(System.out::println);

常见操作

Stream API 提供各种操作,包括:

  • filter(): 元素按条件过滤。
  • map(): 将每个元素映射到另一个值。
  • reduce(): 将元素聚合成汇总值。
  • forEach(): 遍历流和操作每个元素。

实战案例:员工工资

假设你有一组员工记录,包括他们的姓名、工资和部门。现在,你需要计算每个部门的总工资。使用 Stream API,很容易实现。

List<Employee> employees = List.of(
    new Employee("John Doe", 1000, "IT"),
    new Employee("Jane Smith", 1500, "Sales"),
    new Employee("Bill Jones", 2000, "Marketing")
);

// 根据部门对员工进行分组
Map<String, List<Employee>> employeesByDepartment = employees.stream()
    .collect(Collectors.groupingBy(Employee::getDepartment));

// 计算各部门总工资
Map<String, Integer> totalSalariesByDepartment = employeesByDepartment.entrySet().stream()
    .collect(Collectors.toMap(
        Map.Entry::getKey,
        entry -> entry.getValue().stream()
            .mapToInt(Employee::getSalary)
            .sum()));

System.out.println(totalSalariesByDepartment);

结论

Java Stream API 它是一种功能强大的工具,用于函数操作集合。它为处理数据提供了一种简单高效的方法,消除了传统循环和条件句的需要。通过学习 Stream API,您可以提高 Java 代码的效率和可读性。

以上就是如何在这里 Java 中使用 Stream API 函数编程?详情请关注图灵教育的其他相关文章!