logo

Anonimna funkcija v Javi

V Javi, anonimne funkcije , znan tudi kot lambda izraz. Predstavljen je bil v Javi 8 kot način za zagotavljanje bolj jedrnate in berljive kode. Omogočajo nam, da definiramo funkcijo v eni vrstici kode, ne da bi morali izrecno definirati razred ali vmesnik.

vrnjeno polje java

Kaj je anonimna funkcija?

Anonimna funkcija je funkcija, ki nima imena in ni vezana na identifikator. Običajno je definiran v vrstici in ga je mogoče posredovati kot argument drugi funkciji ali vrniti kot vrednost iz funkcije. V Javi so anonimne funkcije implementirane kot lambda izrazi, ki so skrajšan način definiranja anonimne funkcije.

Sintaksa

Sintaksa za anonimno funkcijo v Javi je naslednja:

 (parameters) -> { body } 

Parametri so vhodi v funkcijo, telo pa je koda, ki se izvede ob klicu funkcije. Tukaj je primer anonimne funkcije, ki sprejme dve celi števili kot vnosa in vrne njuno vsoto:

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

Zgornjo anonimno funkcijo je mogoče posredovati kot argument drugi funkciji ali jo dodeliti spremenljivki:

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

V tem primeru definiramo spremenljivko, imenovano add, ki je funkcija, ki sprejme dve celi števili kot vnosa in vrne njuno vsoto.

Prednosti anonimnih funkcij

Uporaba anonimnih funkcij v Javi ima več prednosti, vključno z:

Jedrnata sintaksa: Anonimne funkcije zagotavljajo jedrnat način definiranja funkcije, ne da bi morali definirati ločen razred ali vmesnik.

Berljiva koda: Ker so anonimne funkcije definirane v vrstici, je kodo lažje brati in razumeti.

Prilagodljivost: Anonimne funkcije je mogoče posredovati kot argumente drugim funkcijam ali vrniti kot vrednosti funkcij, kar zagotavlja večjo prilagodljivost pri uporabi funkcij.

Izboljšana zmogljivost: Uporaba anonimnih funkcij lahko izboljša zmogljivost z zmanjšanjem količine pomnilnika in procesorske moči, potrebne za definiranje in klicanje funkcij.

tukaj je primer kode Java, ki prikazuje uporabo anonimnih funkcij (lambda izrazov) za filtriranje seznama celih števil:

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

Izhod:

 Even numbers: 2 4 

V tej kodi definiramo seznam celih števil in nato uporabimo anonimno funkcijo (lambda izraz), da definiramo predikat, ki filtrira seznam tako, da vključuje samo soda števila. Nato uporabimo metodo filtra, da predikat uporabimo na seznamu in vrnemo nov seznam sodih števil. Na koncu izpišemo soda števila z uporabo zanke for.

Tukaj je še en primer kode Java, ki prikazuje uporabo anonimnih funkcij (lambda izrazov) za razvrščanje seznama nizov:

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

Izhod:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

V zgornji kodi smo definirali seznam sadja in nato uporabili anonimno funkcijo (lambda izraz), da definiramo primerjalnik, ki razvrsti seznam po abecedi. Nato uporabimo metodo razvrščanja, da uporabimo primerjalnik na seznamu in ga razvrstimo. Na koncu natisnemo razvrščeni seznam sadja z uporabo zanke for.

Zaključek

Anonimne funkcije v Javi zagotavljajo jedrnat in berljiv način definiranja funkcij, ne da bi morali definirati ločen razred ali vmesnik. Uporabljajo se lahko za izboljšanje delovanja kode in zagotavljajo večjo prilagodljivost pri uporabi funkcij. Z uvedbo lambda izrazov v Javi 8 so anonimne funkcije postale pomembno orodje za razvijalce pri pisanju učinkovitejše kode, ki jo je mogoče vzdrževati.