Chương trình Java để truyền biểu thức lambda làm đối số phương thức

Trong ví dụ này, chúng ta sẽ học cách truyền biểu thức lambda làm đối số phương thức trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Biểu thức Lambda Java
  • Lớp Java ArrayList
  • Phương thức Java

Ví dụ 1: Định nghĩa biểu thức lambda làm tham số phương thức

 import java.util.ArrayList; class Main ( public static void main(String() args) ( // create an ArrayList ArrayList 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); ) )

Đầu ra

 ArrayList: (java, swift, python) ArrayList đã cập nhật: (JAVA, SWIFT, PYTHON)

Trong ví dụ trên, chúng tôi đã tạo một danh sách mảng có tên các ngôn ngữ. Lưu ý dòng,

 languages.replaceAll(e -> e.toUpperCase());

Đây, e -> e.toUpperCase()là một biểu thức lambda. Nó nhận tất cả các phần tử của danh sách mảng và chuyển chúng thành chữ hoa.

Ví dụ 2: Truyền nhiều dòng lambda body làm đối số hàm

 import java.util.ArrayList; import java.util.Arrays; class Main ( public static void main(String() args) ( // create an ArrayList ArrayList 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 + ", "); )); ) )

Đầu ra

 ArrayList: (java, python) ArrayList đã đảo ngược: avaj, nohtyp,

Trong ví dụ trên, chúng ta đã tạo một ngôn ngữ danh sách mảng. Lưu ý dòng,

  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 + ", "); ));

Ở đây, chúng ta đang truyền biểu thức lambda làm đối số cho phương thức ArrayList forEach (). Biểu thức lambda sẽ đảo ngược từng phần tử của danh sách mảng.

thú vị bài viết...