使用Lambda表达式从现有列表创建包含新值的新列表的Java程序


在本文中,我们将演示如何使用Lambda表达式从现有的Employee对象列表中创建一个新的员工姓名列表。我们将利用Java的Stream API高效地映射员工数据并将其收集到一个新的列表中。

Lambda表达式:Lambda表达式通过使用函数式接口(只有一个方法的接口)简化了函数式编程。Lambda表达式提供了一种简单的方法来实现此方法。

步骤

以下是使用Lambda表达式从现有列表创建包含新值的新列表的步骤:

  • java.util包导入必要的类。
  • 定义一个包含Employee对象的列表,其中包含姓名、年龄和区域信息。
  • 应用一个Lambda函数从员工列表中提取姓名。
  • 使用stream()map()collect()方法生成一个新的姓名列表。
  • 显示员工姓名列表。

Java Lambda:从现有列表创建新列表

以下是使用Lambda表达式从现有列表创建包含新值的新列表的Java程序:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Demo {
    public static void main(String[] args) {
        List emp = new ArrayList<>(Arrays.asList(
                new Employee("Jack", 29, "South"),
                new Employee("Tom", 24, "North"),
                new Employee("Harry", 35, "West"),
                new Employee("Katie", 32, "East")
                                             ));

        Function getName = Employee::displayEmpName;
        List res = emp.stream()
                           .map(getName)
                           .collect(Collectors.toList());

        System.out.println("Employee Names = " + res);
    }
}

class Employee {
    private String emp_name;
    private int emp_age;
    private String emp_zone;

    public Employee(String emp_name, int emp_age, String emp_zone) {
        this.emp_name = emp_name;
        this.emp_age = emp_age;
        this.emp_zone = emp_zone;
    }

    public String displayEmpName() {
        return this.emp_name;
    }
}

输出

Employee Names = [Jack, Tom, Harry, Katie]

代码解释

程序首先导入必要的类,例如ArrayListArrays、List和Collectors(来自java.util包)以及来自java.util.function包Function接口。主类Demo使用Arrays.asList()初始化一个Employee对象的列表。每个Employee对象包含姓名、年龄和区域,这些属性封装在Employee类中。然后使用Lambda表达式(u -> u.displayEmpName())和map()方法提取员工姓名。使用collect(Collectors.toList())方法将这些姓名收集到一个新的列表res中。最后,程序打印员工姓名。

更新于:2024年8月12日

2K+浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告