Program Java pentru a transmite expresia lambda ca argument de metodă

În acest exemplu, vom învăța să trecem expresia lambda ca argument al metodei în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Java Lambda Expressions
  • Clasa Java ArrayList
  • Metode Java

Exemplul 1: definiți expresiile lambda ca parametri ai metodei

 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); ) )

Ieșire

 ArrayList: (java, rapid, python) Actualizat ArrayList: (JAVA, SWIFT, PYTHON)

În exemplul de mai sus, am creat un arraylist numit limbi. Observați linia,

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

Iată e -> e.toUpperCase()o expresie lambda. Prinde toate elementele din lista de arraylist și le transformă în majuscule.

Exemplul 2: Treceți corpul lambda multiliniu ca argumente funcționale

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

Ieșire

 ArrayList: (java, python) ArrayList inversat: avaj, nohtyp,

În exemplul de mai sus, am creat un limbaj arrailist. Observați linia,

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

Aici, trecem expresia lambda ca argument la metoda ArrayList forEach (). Expresia lambda va inversa fiecare element al listei arraylist.

Articole interesante...