📅  最后修改于: 2023-12-03 14:49:17.823000             🧑  作者: Mango
当处理 Java 流时,有时我们需要过滤和映射多个字段的值。这可以通过使用流的 filter()
和 map()
方法结合使用来实现。本文将介绍如何在 Java 中从流中过滤和映射多个字段。
假设我们有一个包含多个对象的流,每个对象都有不同的属性。我们需要过滤出满足特定条件的对象,并从这些对象中提取多个字段的值。
以下是一个示例,假设我们有一个包含员工对象的流,每个员工对象有姓名和年龄属性。我们需要过滤出年龄大于等于 30 的员工,并提取他们的姓名和年龄。
class Employee {
private String name;
private int age;
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and Setters
// ...
}
List<Employee> employees = Arrays.asList(
new Employee("John", 25),
new Employee("Jane", 35),
new Employee("Mike", 40),
new Employee("Sarah", 28)
);
List<String> filteredAndMappedList = employees.stream()
.filter(e -> e.getAge() >= 30) // 过滤出年龄大于等于 30 的员工
.map(e -> e.getName() + " (" + e.getAge() + ")") // 映射姓名和年龄
.collect(Collectors.toList());
System.out.println(filteredAndMappedList);
输出结果将是:
[Jane (35), Mike (40)]
在上面的代码中,我们使用 filter()
方法过滤出年龄大于等于 30 的员工,并使用 map()
方法将姓名和年龄映射为一个字符串。最后,我们使用 collect(Collectors.toList())
将结果收集到一个列表中。
这样,我们就成功从 Java 流中过滤和映射多个字段的值。
本文介绍了在 Java 中如何从流中过滤和映射多个字段的值。我们使用 filter()
方法过滤出满足条件的对象,并使用 map()
方法对对象进行映射转换。最后,我们使用 collect(Collectors.toList())
方法将结果收集到一个列表中。
希望本文对您在 Java 中过滤和映射多个字段有所帮助!