Πρόγραμμα Java για μετάδοση έκφρασης λάμδα ως όρισμα μεθόδου

Σε αυτό το παράδειγμα, θα μάθουμε να περνάμε την έκφραση lambda ως όρισμα μεθόδου στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Java Lambda Expressions
  • Τάξη Java ArrayList
  • Μέθοδοι Java

Παράδειγμα 1: Ορίστε τις εκφράσεις λάμδα ως παραμέτρους μεθόδου

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

Παραγωγή

 ArrayList: (java, swift, python) Ενημερωμένη ArrayList: (JAVA, SWIFT, PYTHON)

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει μια λίστα με ονόματα γλωσσών. Παρατηρήστε τη γραμμή,

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

Εδώ, e -> e.toUpperCase()είναι μια έκφραση λάμδα. Παίρνει όλα τα στοιχεία της λίστας πίνακα και τα μετατρέπει σε κεφαλαία.

Παράδειγμα 2: Περάστε το πολυστρωματικό σώμα λάμδα ως ορίσματα συνάρτησης

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

Παραγωγή

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

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει γλώσσες σε λίστα. Παρατηρήστε τη γραμμή,

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

Εδώ, περνάμε την έκφραση lambda ως επιχείρημα στη μέθοδο ArrayList forEach (). Η έκφραση λάμδα θα αντιστρέψει κάθε στοιχείο της λίστας πίνακα.

ενδιαφέροντα άρθρα...