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