Σε αυτό το παράδειγμα, θα μάθουμε να περνάμε την έκφραση 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 (). Η έκφραση λάμδα θα αντιστρέψει κάθε στοιχείο της λίστας πίνακα.