Java valodā, anonīmas funkcijas , ko sauc arī par lambda izteiksmēm. Tas tika ieviests Java 8 kā veids, kā nodrošināt kodolīgāku un lasāmāku kodu. Tie ļauj mums definēt funkciju vienā koda rindā, nepārprotami definējot klasi vai saskarni.
java int, lai char
Kas ir anonīma funkcija?
Anonīma funkcija ir funkcija, kurai nav nosaukuma un kas nav saistīta ar identifikatoru. Tas parasti tiek definēts iekļauts, un to var nodot kā argumentu citai funkcijai vai atgriezt kā vērtību no funkcijas. Java programmā anonīmas funkcijas tiek ieviestas kā lambda izteiksmes, kas ir īss veids, kā definēt anonīmu funkciju.
Sintakse
Java anonīmas funkcijas sintakse ir šāda:
(parameters) -> { body }
Parametri ir funkcijas ievades, un pamatteksts ir kods, kas tiek izpildīts, kad funkcija tiek izsaukta. Šeit ir anonīmas funkcijas piemērs, kas ņem divus veselus skaitļus kā ievadi un atgriež to summu:
(int a, int b) -> { return a + b; }
Iepriekš minēto anonīmo funkciju var nodot kā argumentu citai funkcijai vai piešķirt mainīgajam:
Function add = (a, b) -> a + b;
Šajā piemērā mēs definējam mainīgo ar nosaukumu add, kas ir funkcija, kas ņem divus veselus skaitļus kā ievadi un atgriež to summu.
Anonīmo funkciju priekšrocības
Anonīmo funkciju izmantošanai Java ir vairākas priekšrocības, tostarp:
Īsa sintakse: Anonīmās funkcijas nodrošina īsu veidu, kā definēt funkciju, nedefinējot atsevišķu klasi vai saskarni.
Lasāms kods: Tā kā anonīmas funkcijas ir definētas iekļautas, kods var būt vieglāk lasāms un saprotams.
Elastīgums: Anonīmas funkcijas var nodot kā argumentus citām funkcijām vai atgriezt kā vērtības no funkcijām, nodrošinot lielāku elastību funkciju lietošanā.
Uzlabota veiktspēja: Anonīmu funkciju izmantošana var uzlabot veiktspēju, samazinot atmiņas apjomu un apstrādes jaudu, kas nepieciešama funkciju definēšanai un izsaukšanai.
Šeit ir Java koda piemērs, kas parāda anonīmu funkciju (lambda izteiksmju) izmantošanu veselu skaitļu saraksta filtrēšanai:
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; } }
Izvade:
Even numbers: 2 4
Šajā kodā mēs definējam veselu skaitļu sarakstu un pēc tam izmantojam anonīmu funkciju (lambda izteiksmi), lai definētu predikātu, kas filtrē sarakstu, iekļaujot tikai pāra skaitļus. Pēc tam mēs izmantojam filtra metodi, lai sarakstam lietotu predikātu un atgrieztu jaunu pāra skaitļu sarakstu. Visbeidzot, mēs izdrukājam pāra skaitļus, izmantojot for cilpu.
Šeit ir vēl viens Java koda piemērs, kas parāda anonīmu funkciju (lambda izteiksmju) izmantošanu, lai kārtotu virkņu sarakstu:
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); } } }
Izvade:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
Iepriekš minētajā kodā esam definējuši augļu sarakstu un pēc tam izmantojām anonīmu funkciju (lambda izteiksmi), lai definētu salīdzinājumu, kas sakārto sarakstu alfabētiskā secībā. Pēc tam mēs izmantojam kārtošanas metodi, lai sarakstā lietotu salīdzinātāju un sakārtotu to. Visbeidzot, izmantojot for cilpu, mēs izdrukājam sakārtoto augļu sarakstu.
Secinājums
Anonīmās funkcijas Java nodrošina īsu un lasāmu veidu, kā definēt funkcijas, nedefinējot atsevišķu klasi vai saskarni. Tos var izmantot, lai uzlabotu koda veiktspēju un nodrošinātu lielāku elastību funkciju izmantošanā. Līdz ar lambda izteiksmju ieviešanu Java 8, anonīmas funkcijas ir kļuvušas par svarīgu rīku izstrādātājiem, lai rakstītu efektīvāku un uzturējamāku kodu.