Programa Java para pasar la expresión lambda como argumento de método

En este ejemplo, aprenderemos a pasar una expresión lambda como argumento del método en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Expresiones Java Lambda
  • Clase Java ArrayList
  • Métodos Java

Ejemplo 1: definir expresiones lambda como parámetros de método

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

Salida

 ArrayList: (java, swift, python) ArrayList actualizado: (JAVA, SWIFT, PYTHON)

En el ejemplo anterior, hemos creado una lista de arrays denominada lenguajes. Note la línea,

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

Aquí e -> e.toUpperCase()hay una expresión lambda. Toma todos los elementos de la lista de matrices y los convierte en mayúsculas.

Ejemplo 2: pasar el cuerpo lambda de varias líneas como argumentos de función

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

Salida

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

En el ejemplo anterior, hemos creado una lista de arrays de lenguajes. Note la línea,

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

Aquí, estamos pasando una expresión lambda como argumento al método ArrayList forEach (). La expresión lambda invertirá cada elemento de la lista de matrices.

Articulos interesantes...