📜  从 java 流中过滤和映射多个字段 - Java (1)

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

从 Java 流中过滤和映射多个字段 - Java

当处理 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 中过滤和映射多个字段有所帮助!