Programme Java pour passer une expression lambda comme argument de méthode

Dans cet exemple, nous allons apprendre à passer l'expression lambda comme argument de méthode en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Expressions Java Lambda
  • Classe Java ArrayList
  • Méthodes Java

Exemple 1: définir des expressions lambda comme paramètres de méthode

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

Production

 ArrayList: (java, swift, python) ArrayList mis à jour: (JAVA, SWIFT, PYTHON)

Dans l'exemple ci-dessus, nous avons créé une arraylist nommée languages. Remarquez la ligne,

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

Voici e -> e.toUpperCase()une expression lambda. Il prend tous les éléments de l'arraylist et les convertit en majuscules.

Exemple 2: Passez un corps lambda multiligne comme arguments de fonction

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

Production

 ArrayList: (java, python) ArrayList inversé: avaj, nohtyp,

Dans l'exemple ci-dessus, nous avons créé une arraylist langages. Remarquez la ligne,

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

Ici, nous transmettons une expression lambda en tant qu'argument à la méthode ArrayList forEach (). L'expression lambda inversera chaque élément de l'arraylist.

Articles intéressants...