Java教程

Java 将 lambda 表达式作为方法参数传递的程序

将 lambda 表达式作为方法参数传递的 Java 程序

在这个例子中,我们将学习在 Java 中传递 lambda 表达式作为方法参数。
要理解此示例,您应该了解以下Java 编程主题:
Java Lambda 表达式 Java ArrayList 类 Java 方法

示例 1: 将 lambda 表达式定义为方法参数

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList<String> languages = new ArrayList<>();
        // add elements to the ArrayList
        languages.add("java");
        languages.add("swift");
        languages.add("python");
        System.out.println("ArrayList: " + languages);
        // pass lambda expression as parameter to replaceAll() method
        languages.replaceAll(e-> e.toUpperCase());
        System.out.println("Updated ArrayList: " + languages);
    }
}
输出
ArrayList: [java, swift, python]
Updated ArrayList: [JAVA, SWIFT, PYTHON]
在上面的例子中,我们创建了一个名为 languages 的数组列表。注意这一行,
languages.replaceAll(e-> e.toUpperCase());
这里, e-> e.toUpperCase() 是一个 lambda 表达式。它获取 arraylist 的所有元素并将它们转换为大写。

示例 2: 将多行 lambda 主体作为函数参数传递

import java.util.ArrayList;
import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    // create an ArrayList
    ArrayList<String> languages = new ArrayList<>(Arrays.asList("java", "python"));
    System.out.println("ArrayList: " + languages);
    // call the foEach() method
    // pass lambda as argument fo forEach()
    // reverse each element of ArrayList
    System.out.print("Reversed ArrayList: ");
    languages.forEach((e)-> {
      // body of lambda expression
      String result = "";
      for (int i = e.length()-1; i >= 0 ; i--)
      result += e.charAt(i);
      System.out.print(result + ", ");
    });
  }
}
输出
ArrayList: [java, python]
Reversed ArrayList: avaj, nohtyp,
在上面的例子中,我们创建了一个数组列表 languages。注意这一行,
    languages.forEach((e)-> {
      // body of lambda expression
      String result = "";
      for (int i = e.length()-1; i >= 0 ; i--)
      result += e.charAt(i);
      System.out.print(result + ", ");
    });
在这里,我们将 lambda 表达式作为参数传递给 ArrayList forEach() 方法. lambda 表达式将反转 arraylist 的每个元素。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4