使用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+瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告