Java programma, lai nodotu lambda izteiksmi kā metodes argumentu

Šajā piemērā mēs iemācīsimies nodot lambda izteiksmi kā metodes argumentu Java.

Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:

  • Java Lambda izteiksmes
  • Java ArrayList klase
  • Java metodes

1. piemērs: definējiet lambda izteiksmes kā metodes parametrus

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

Rezultāts

 ArrayList: (java, swift, python) Atjaunināts ArrayList: (JAVA, SWIFT, PYTHON)

Iepriekš minētajā piemērā mēs esam izveidojuši masīvu sarakstu ar valodām. Ievērojiet līniju,

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

Šeit e -> e.toUpperCase()ir lambda izteiksme. Tas aizņem visus masīva saraksta elementus un pārveido tos par lielajiem burtiem.

2. piemērs: nododiet daudzrindu lambda ķermeni kā funkcijas argumentus

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

Rezultāts

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

Iepriekš minētajā piemērā mēs esam izveidojuši masīvu saraksta valodas. Ievērojiet līniju,

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

Šeit mēs nododam lambda izteiksmi kā argumentu ArrayList forEach () metodei. Lambda izteiksme mainīs katru masīvu saraksta elementu.

Interesanti raksti...