Програма Java за предаване на ламбда израз като аргумент на метод

В този пример ще се научим да предаваме ламбда израза като аргумент на метода в Java.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:

  • Java Lambda Expressions
  • Клас на Java ArrayList
  • Java методи

Пример 1: Определете ламбда изразите като параметри на метода

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

Изход

 ArrayList: (java, swift, python) Актуализиран ArrayList: (JAVA, SWIFT, PYTHON)

В горния пример създадохме списък с имена с имена. Забележете линията,

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

Ето, това e -> e.toUpperCase()е ламбда израз. Той взема всички елементи на списъка с аргументи и ги преобразува в главни букви.

Пример 2: Предайте многоредово лямбда тяло като аргументи на функцията

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

Изход

 ArrayList: (java, python) Обратен ArrayList: avaj, nohtyp,

В горния пример създадохме езици за списък с паралели. Забележете линията,

  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 forEach (). Ламбда изразът ще обърне всеки елемент от списъка с паралели.

Интересни статии...