„Java“ programa perduoda lambda išraišką kaip metodo argumentą

Šiame pavyzdyje mes išmoksime perduoti „lambda“ išraišką kaip „Java“ metodo argumentą.

Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:

  • „Java Lambda“ išraiškos
  • „Java ArrayList“ klasė
  • „Java“ metodai

1 pavyzdys: apibrėžkite lambda išraiškas kaip metodo 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); ) )

Rezultatas

 „ArrayList“: („Java“, „Swift“, „python“) Atnaujintas „ArrayList“: (JAVA, SWIFT, PYTHON)

Ankstesniame pavyzdyje mes sukūrėme masyvų sąrašą, pavadintą kalbomis. Atkreipkite dėmesį į eilutę,

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

Čia e -> e.toUpperCase()yra lambda išraiška. Tai paima visus masyvo sąrašo elementus ir paverčia juos didžiosiomis raidėmis.

2 pavyzdys: perduokite daugiasluoksnį lambda kūną kaip funkcijos 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 + ", "); )); ) )

Rezultatas

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

Ankstesniame pavyzdyje mes sukūrėme masyvų sąrašo kalbas. Atkreipkite dėmesį į eilutę,

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

Čia lambda išraišką kaip argumentą perduodame ArrayList forEach () metodui. Lambda išraiška pakeis kiekvieną masyvų sąrašo elementą.

Įdomios straipsniai...