Programma Java per passare l'espressione lambda come argomento del metodo

In questo esempio, impareremo a passare l'espressione lambda come argomento del metodo in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Espressioni Java Lambda
  • Classe Java ArrayList
  • Metodi Java

Esempio 1: definire le espressioni lambda come parametri del metodo

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

Produzione

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

Nell'esempio precedente, abbiamo creato un elenco di elenchi denominato languages. Notare la linea,

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

Ecco e -> e.toUpperCase()un'espressione lambda. Prende tutti gli elementi dell'elenco di array e li converte in maiuscolo.

Esempio 2: passare un corpo lambda su più righe come argomenti della funzione

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

Produzione

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

Nell'esempio precedente, abbiamo creato un elenco di lingue. Notare la linea,

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

Qui, stiamo passando l'espressione lambda come argomento al metodo ArrayList forEach (). L'espressione lambda invertirà ogni elemento dell'arraylist.

Articoli interessanti...