I Java, anonyma funktioner , även känd som lambda-uttryck. Det introducerades i Java 8 som ett sätt att tillhandahålla mer koncis och läsbar kod. De tillåter oss att definiera en funktion i en enda kodrad utan att explicit behöva definiera en klass eller gränssnitt.
tolkar sträng till int
Vad är en anonym funktion?
En anonym funktion är en funktion som inte har något namn och inte är bunden till en identifierare. Det är vanligtvis definierat inline och kan skickas som ett argument till en annan funktion eller returneras som ett värde från en funktion. I Java implementeras anonyma funktioner som lambda-uttryck, som är ett kortfattat sätt att definiera en anonym funktion.
Syntax
Syntaxen för en anonym funktion i Java är följande:
(parameters) -> { body }
Parametrarna är indata till funktionen, och kroppen är koden som körs när funktionen anropas. Här är ett exempel på en anonym funktion som tar två heltal som indata och returnerar deras summa:
(int a, int b) -> { return a + b; }
Ovanstående anonyma funktion kan skickas som ett argument till en annan funktion eller tilldelas en variabel:
Function add = (a, b) -> a + b;
I det här exemplet definierar vi en variabel som heter add som är en funktion som tar två heltal som indata och returnerar deras summa.
Fördelar med anonyma funktioner
Användningen av anonyma funktioner i Java har flera fördelar, inklusive:
Kortfattad syntax: Anonyma funktioner ger ett kortfattat sätt att definiera en funktion utan att behöva definiera en separat klass eller gränssnitt.
Läsbar kod: Eftersom anonyma funktioner är definierade inline kan koden vara lättare att läsa och förstå.
Flexibilitet: Anonyma funktioner kan skickas som argument till andra funktioner eller returneras som värden från funktioner, vilket ger mer flexibilitet i hur funktioner används.
Förbättrad prestanda: Användningen av anonyma funktioner kan förbättra prestandan genom att minska mängden minne och processorkraft som krävs för att definiera och anropa funktioner.
här är ett exempel på Java-kod som visar användningen av anonyma funktioner (lambda-uttryck) för att filtrera en lista med heltal:
Anonym FunctionExample.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; } }
Produktion:
Even numbers: 2 4
I den här koden definierar vi en lista med heltal och använder sedan en anonym funktion (lambda-uttryck) för att definiera ett predikat som filtrerar listan till att bara inkludera jämna tal. Vi använder sedan filtermetoden för att tillämpa predikatet på listan och returnera en ny lista med jämna tal. Slutligen skriver vi ut de jämna talen med en for-loop.
Här är ett annat exempel på Java-kod som visar användningen av anonyma funktioner (lambda-uttryck) för att sortera en lista med strängar:
AnonymFunctionExample.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); } } }
Produktion:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
I koden ovan har vi definierat en lista med frukter och använder sedan en anonym funktion (lambda-uttryck) för att definiera en komparator som sorterar listan alfabetiskt. Vi använder sedan sorteringsmetoden för att applicera komparatorn på listan och sortera den. Slutligen skriver vi ut den sorterade fruktlistan med hjälp av en for-loop.
Slutsats
Anonyma funktioner i Java ger ett kortfattat och läsbart sätt att definiera funktioner utan att behöva definiera en separat klass eller gränssnitt. De kan användas för att förbättra kodens prestanda och ge mer flexibilitet i hur funktioner används. Med introduktionen av lambda-uttryck i Java 8 har anonyma funktioner blivit ett viktigt verktyg för utvecklare för att skriva mer effektiv och underhållbar kod.