logo

Névtelen függvény Java-ban

Java nyelven, névtelen funkciók , más néven lambda kifejezések. A Java 8-ban vezették be, hogy tömörebb és olvashatóbb kódot biztosítson. Lehetővé teszik, hogy egy függvényt egyetlen kódsorban definiáljunk anélkül, hogy kifejezetten meg kellene határoznunk egy osztályt vagy interfészt.

a hivatali idő kiszámítása excelben

Mi az anonim függvény?

Az anonim függvény olyan függvény, amelynek nincs neve, és nincs azonosítóhoz kötve. Általában soron belül van definiálva, és argumentumként átadható egy másik függvénynek, vagy visszaadható értékként egy függvényből. A Java nyelven az anonim függvények lambda-kifejezésekként valósulnak meg, amelyek egy névtelen függvény definiálásának rövidített módja.

Szintaxis

A Java névtelen függvényének szintaxisa a következő:

 (parameters) -> { body } 

A paraméterek a függvény bemenetei, a törzs pedig a kód, amely a függvény meghívásakor lefut. Íme egy példa egy névtelen függvényre, amely két egész számot vesz fel bemenetként, és ezek összegét adja vissza:

 (int a, int b) -> { return a + b; } 

A fenti névtelen függvény argumentumként átadható egy másik függvénynek, vagy hozzárendelhető egy változóhoz:

 Function add = (a, b) -> a + b; 

Ebben a példában definiálunk egy add nevű változót, amely egy olyan függvény, amely két egész számot vesz bemenetként, és ezek összegét adja vissza.

Az Anonymous Functions előnyei

A névtelen függvények Java-ban való használatának számos előnye van, többek között:

Tömör szintaxis: Az anonim függvények tömör módot biztosítanak egy függvény meghatározására anélkül, hogy külön osztályt vagy interfészt kellene meghatározni.

Olvasható kód: Mivel az anonim függvények soron belül vannak definiálva, a kód könnyebben olvasható és érthető.

Rugalmasság: Az anonim függvények argumentumként átadhatók más függvényeknek, vagy visszaadhatók függvényekből származó értékekként, így nagyobb rugalmasságot biztosítanak a függvények használatában.

Jobb teljesítmény: Az anonim függvények használata javíthatja a teljesítményt azáltal, hogy csökkenti a függvények meghatározásához és meghívásához szükséges memória és feldolgozási teljesítményt.

íme egy példa Java kódra, amely bemutatja anonim függvények (lambda kifejezések) használatát az egész számok listájának szűrésére:

AnonymousFunctionExample.java

 import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; public class AnonymousFunctionExample { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); // Filter the list to only include even numbers Predicate isEven = (n) -> n % 2 == 0; List evenNumbers = filter(numbers, isEven); // Print the even numbers System.out.println('Even numbers:'); for (Integer number : evenNumbers) { System.out.println(number); } } // Filter a list using a predicate public static List filter(List list, Predicate predicate) { List result = new ArrayList(); for (T element : list) { if (predicate.test(element)) { result.add(element); } } return result; } } 

Kimenet:

 Even numbers: 2 4 

Ebben a kódban egész számok listáját definiáljuk, majd egy névtelen függvény (lambda kifejezés) segítségével meghatározunk egy predikátumot, amely szűri a listát, hogy csak páros számokat tartalmazzon. Ezután a szűrési módszerrel alkalmazzuk a predikátumot a listára, és visszaadjuk a páros számok új listáját. Végül kinyomtatjuk a páros számokat egy for ciklus segítségével.

Íme egy másik példa Java kódra, amely bemutatja a névtelen függvények (lambda kifejezések) használatát a karakterláncok listájának rendezésére:

AnonymousFunctionExample.java

 import java.util.ArrayList; import java.util.Comparator; import java.util.List; public class AnonymousFunctionExample { public static void main(String[] args) { List fruits = new ArrayList(); fruits.add('Apple'); fruits.add('Banana'); fruits.add('Grape'); fruits.add('Orange'); fruits.add('Pineapple'); // Sort the list of fruits alphabetically fruits.sort((f1, f2) -> f1.compareTo(f2)); // Print the sorted list of fruits System.out.println('Sorted list of fruits:'); for (String fruit : fruits) { System.out.println(fruit); } } } 

Kimenet:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

A fenti kódban definiáltunk egy gyümölcslistát, majd egy anonim függvényt (lambda-kifejezést) használunk a listát ábécé szerint rendező összehasonlító meghatározásához. Ezután a rendezési módszerrel alkalmazzuk az összehasonlítót a listára, és rendezzük azt. Végül kinyomtatjuk a gyümölcsök rendezett listáját egy for ciklus segítségével.

Következtetés

A Java névtelen függvényei tömör és olvasható módot biztosítanak a függvények meghatározására anélkül, hogy külön osztályt vagy interfészt kellene definiálni. Használhatók a kód teljesítményének javítására, és nagyobb rugalmasságot biztosítanak a funkciók használatában. A lambda-kifejezések Java 8-ban történő bevezetésével az anonim függvények fontos eszközzé váltak a fejlesztők számára, hogy hatékonyabb és karbantarthatóbb kódokat írjanak.