I Java, anonyme funksjoner , også kjent som lambda-uttrykk. Den ble introdusert i Java 8 som en måte å gi mer kortfattet og lesbar kode. De lar oss definere en funksjon i en enkelt kodelinje uten å eksplisitt definere en klasse eller grensesnitt.
kat timpf vekt
Hva er en anonym funksjon?
En anonym funksjon er en funksjon som ikke har noe navn og ikke er bundet til en identifikator. Det er vanligvis definert inline og kan sendes som et argument til en annen funksjon eller returneres som en verdi fra en funksjon. I Java implementeres anonyme funksjoner som lambda-uttrykk, som er en kortfattet måte å definere en anonym funksjon på.
Syntaks
Syntaksen for en anonym funksjon i Java er som følger:
(parameters) -> { body }
Parametrene er inngangene til funksjonen, og kroppen er koden som utføres når funksjonen kalles. Her er et eksempel på en anonym funksjon som tar to heltall som input og returnerer summen deres:
(int a, int b) -> { return a + b; }
Ovennevnte anonyme funksjon kan sendes som et argument til en annen funksjon eller tilordnes til en variabel:
Function add = (a, b) -> a + b;
I dette eksemplet definerer vi en variabel kalt add som er en funksjon som tar to heltall som input og returnerer summen deres.
Fordeler med anonyme funksjoner
Bruken av anonyme funksjoner i Java har flere fordeler, inkludert:
Kortfattet syntaks: Anonyme funksjoner gir en kortfattet måte å definere en funksjon uten å måtte definere en egen klasse eller grensesnitt.
Lesbar kode: Fordi anonyme funksjoner er definert inline, kan koden være lettere å lese og forstå.
Fleksibilitet: Anonyme funksjoner kan sendes som argumenter til andre funksjoner eller returneres som verdier fra funksjoner, noe som gir mer fleksibilitet i hvordan funksjoner brukes.
Forbedret ytelse: Bruk av anonyme funksjoner kan forbedre ytelsen ved å redusere mengden minne og prosessorkraft som kreves for å definere og kalle opp funksjoner.
her er et eksempel på Java-kode som demonstrerer bruken av anonyme funksjoner (lambda-uttrykk) for å filtrere en liste over heltall:
AnonymFunksjonExample.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; } }
Produksjon:
Even numbers: 2 4
I denne koden definerer vi en liste over heltall og bruker deretter en anonym funksjon (lambda-uttrykk) for å definere et predikat som filtrerer listen til kun å inkludere partall. Vi bruker deretter filtermetoden for å bruke predikatet på listen og returnere en ny liste med partall. Til slutt skriver vi ut partallene ved hjelp av en for-løkke.
Her er et annet eksempel på Java-kode som demonstrerer bruken av anonyme funksjoner (lambda-uttrykk) for å sortere en liste over strenger:
AnonymFunksjonExample.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); } } }
Produksjon:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
I koden ovenfor har vi definert en liste over frukter og bruker deretter en anonym funksjon (lambda-uttrykk) for å definere en komparator som sorterer listen alfabetisk. Vi bruker deretter sorteringsmetoden for å bruke komparatoren på listen og sortere den. Til slutt skriver vi ut den sorterte fruktlisten ved å bruke en for-løkke.
Konklusjon
Anonyme funksjoner i Java gir en kortfattet og lesbar måte å definere funksjoner på uten å måtte definere en egen klasse eller grensesnitt. De kan brukes til å forbedre ytelsen til kode og gi mer fleksibilitet i hvordan funksjoner brukes. Med introduksjonen av lambda-uttrykk i Java 8 har anonyme funksjoner blitt et viktig verktøy for utviklere for å skrive mer effektiv og vedlikeholdbar kode.