Java Stream 多个属性分组求和
在Java编程中,我们经常需要对数据进行分组并进行一些计算,比如对多个属性进行分组求和。Java 8 引入的 Stream API 提供了一种简洁而强大的方式来处理这类数据操作。
Stream API 简介
Stream 是 Java 8 中新增的一个用来处理集合的 API,它可以让我们以一种更函数式的方式来操作集合数据。通过 Stream,我们可以轻松地对集合中的数据进行过滤、映射、排序、分组等操作。
多个属性分组求和示例
假设我们有一个包含员工信息的列表,每个员工有姓名、部门和工资三个属性。现在我们想要按部门对工资进行求和,我们可以使用 Stream API 来实现这个功能。
下面是一个示例代码:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Employee> employees = Arrays.asList(
new Employee("Alice", "IT", 5000),
new Employee("Bob", "HR", 6000),
new Employee("Cathy", "IT", 7000),
new Employee("David", "HR", 5500)
);
Map<String, Integer> departmentTotalSalary = employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.summingInt(Employee::getSalary)));
System.out.println(departmentTotalSalary);
}
static class Employee {
private String name;
private String department;
private int salary;
public Employee(String name, String department, int salary) {
this.name = name;
this.department = department;
this.salary = salary;
}
public String getDepartment() {
return department;
}
public int getSalary() {
return salary;
}
}
}
在上面的示例中,我们首先创建了一个包含员工信息的列表,然后使用 Stream API 的 collect
方法对数据进行分组,并通过 summingInt
求和。
结论
通过 Java Stream API,我们可以轻松地实现对多个属性进行分组求和的操作,极大地简化了我们的代码,提高了代码的可读性和可维护性。如果你还没有开始使用 Stream API,赶快学习并尝试吧!
旅行图
journey
title Java Stream 多个属性分组求和
section 准备数据
Main: 创建包含员工信息的列表
section 分组求和
Main: 使用 Stream API 对数据进行分组求和
section 打印结果
Main: 打印部门工资总和
在这篇文章中,我们介绍了如何使用 Java Stream API 对多个属性进行分组求和的操作。通过实际示例,希望读者能够更好地理解 Stream API 的用法,并在实际项目中应用它。如果你对 Stream API 还有疑问,可以查阅官方文档或继续学习相关资料。愿你编程之路越走越宽广,写出更优雅的代码!