In Java, Anonyme Funktionen , auch als Lambda-Ausdrücke bekannt. Es wurde in Java 8 eingeführt, um prägnanteren und lesbareren Code bereitzustellen. Sie ermöglichen es uns, eine Funktion in einer einzigen Codezeile zu definieren, ohne explizit eine Klasse oder Schnittstelle definieren zu müssen.
So konvertieren Sie einen String in einen Integer-Java
Was ist eine anonyme Funktion?
Eine anonyme Funktion ist eine Funktion, die keinen Namen hat und nicht an einen Bezeichner gebunden ist. Es wird normalerweise inline definiert und kann als Argument an eine andere Funktion übergeben oder als Wert von einer Funktion zurückgegeben werden. In Java werden anonyme Funktionen als Lambda-Ausdrücke implementiert, die eine Kurzform zur Definition einer anonymen Funktion darstellen.
Syntax
Die Syntax für eine anonyme Funktion in Java lautet wie folgt:
(parameters) -> { body }
Die Parameter sind die Eingaben für die Funktion und der Hauptteil ist der Code, der ausgeführt wird, wenn die Funktion aufgerufen wird. Hier ist ein Beispiel einer anonymen Funktion, die zwei Ganzzahlen als Eingaben verwendet und deren Summe zurückgibt:
(int a, int b) -> { return a + b; }
Die obige anonyme Funktion kann als Argument an eine andere Funktion übergeben oder einer Variablen zugewiesen werden:
Function add = (a, b) -> a + b;
In diesem Beispiel definieren wir eine Variable namens add, eine Funktion, die zwei ganze Zahlen als Eingaben verwendet und deren Summe zurückgibt.
Vorteile anonymer Funktionen
Die Verwendung anonymer Funktionen in Java hat mehrere Vorteile, darunter:
Prägnante Syntax: Anonyme Funktionen bieten eine übersichtliche Möglichkeit, eine Funktion zu definieren, ohne eine separate Klasse oder Schnittstelle definieren zu müssen.
Lesbarer Code: Da anonyme Funktionen inline definiert werden, kann der Code einfacher zu lesen und zu verstehen sein.
Flexibilität: Anonyme Funktionen können als Argumente an andere Funktionen übergeben oder als Werte von Funktionen zurückgegeben werden, was mehr Flexibilität bei der Verwendung von Funktionen bietet.
Verbesserte Leistung: Die Verwendung anonymer Funktionen kann die Leistung verbessern, indem die Menge an Speicher und Verarbeitungsleistung reduziert wird, die zum Definieren und Aufrufen von Funktionen erforderlich ist.
Hier ist ein Java-Beispielcode, der die Verwendung anonymer Funktionen (Lambda-Ausdrücke) zum Filtern einer Liste von Ganzzahlen demonstriert:
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; } }
Ausgabe:
Even numbers: 2 4
In diesem Code definieren wir eine Liste von Ganzzahlen und verwenden dann eine anonyme Funktion (Lambda-Ausdruck), um ein Prädikat zu definieren, das die Liste so filtert, dass sie nur gerade Zahlen enthält. Anschließend verwenden wir die Filtermethode, um das Prädikat auf die Liste anzuwenden und eine neue Liste gerader Zahlen zurückzugeben. Zum Schluss geben wir die geraden Zahlen mithilfe einer for-Schleife aus.
Hier ist ein weiterer Java-Beispielcode, der die Verwendung anonymer Funktionen (Lambda-Ausdrücke) zum Sortieren einer Liste von Zeichenfolgen demonstriert:
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); } } }
Ausgabe:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
Im obigen Code haben wir eine Liste von Früchten definiert und verwenden dann eine anonyme Funktion (Lambda-Ausdruck), um einen Komparator zu definieren, der die Liste alphabetisch sortiert. Anschließend verwenden wir die Sortiermethode, um den Komparator auf die Liste anzuwenden und sie zu sortieren. Abschließend drucken wir die sortierte Liste der Früchte mithilfe einer for-Schleife aus.
Abschluss
Anonyme Funktionen in Java bieten eine übersichtliche und lesbare Möglichkeit, Funktionen zu definieren, ohne eine separate Klasse oder Schnittstelle definieren zu müssen. Sie können verwendet werden, um die Leistung von Code zu verbessern und mehr Flexibilität bei der Verwendung von Funktionen zu bieten. Mit der Einführung von Lambda-Ausdrücken in Java 8 sind anonyme Funktionen zu einem wichtigen Werkzeug für Entwickler geworden, um effizienteren und wartbareren Code zu schreiben.