logo

Funkcja anonimowa w Javie

na Jawie, funkcje anonimowe , znane również jako wyrażenia lambda. Wprowadzono go w Javie 8 jako sposób na zapewnienie bardziej zwięzłego i czytelnego kodu. Pozwalają nam zdefiniować funkcję w jednym wierszu kodu, bez konieczności jawnego definiowania klasy lub interfejsu.

ustawienie ścieżki Pythona

Co to jest funkcja anonimowa?

Funkcja anonimowa to funkcja, która nie ma nazwy i nie jest powiązana z identyfikatorem. Zwykle jest definiowany inline i może zostać przekazany jako argument innej funkcji lub zwrócony jako wartość z funkcji. W Javie funkcje anonimowe są implementowane w postaci wyrażeń lambda, które stanowią skrótowy sposób definiowania funkcji anonimowej.

Składnia

Składnia funkcji anonimowej w Javie jest następująca:

 (parameters) -> { body } 

Parametry są danymi wejściowymi funkcji, a ciało to kod wykonywany po wywołaniu funkcji. Oto przykład funkcji anonimowej, która przyjmuje dwie liczby całkowite jako dane wejściowe i zwraca ich sumę:

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

Powyższą funkcję anonimową można przekazać jako argument innej funkcji lub przypisać do zmiennej:

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

W tym przykładzie definiujemy zmienną o nazwie add, która jest funkcją, która przyjmuje dwie liczby całkowite jako dane wejściowe i zwraca ich sumę.

Zalety funkcji anonimowych

Stosowanie anonimowych funkcji w Javie ma kilka zalet, do których należą:

Zwięzła składnia: Funkcje anonimowe zapewniają zwięzły sposób definiowania funkcji bez konieczności definiowania osobnej klasy lub interfejsu.

Czytelny kod: Ponieważ funkcje anonimowe są zdefiniowane inline, kod może być łatwiejszy do odczytania i zrozumienia.

Elastyczność: Funkcje anonimowe można przekazywać jako argumenty do innych funkcji lub zwracać jako wartości z funkcji, co zapewnia większą elastyczność w sposobie korzystania z funkcji.

Poprawiona wydajność: Korzystanie z funkcji anonimowych może poprawić wydajność poprzez zmniejszenie ilości pamięci i mocy obliczeniowej wymaganej do definiowania i wywoływania funkcji.

oto przykładowy kod Java demonstrujący użycie funkcji anonimowych (wyrażeń lambda) do filtrowania listy liczb całkowitych:

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

Wyjście:

 Even numbers: 2 4 

W tym kodzie definiujemy listę liczb całkowitych, a następnie używamy funkcji anonimowej (wyrażenie lambda) do zdefiniowania predykatu, który filtruje listę tak, aby zawierała tylko liczby parzyste. Następnie używamy metody filter, aby zastosować predykat do listy i zwrócić nową listę liczb parzystych. Na koniec wypisujemy liczby parzyste za pomocą pętli for.

Oto kolejny przykład kodu Java, który demonstruje użycie funkcji anonimowych (wyrażeń lambda) do sortowania listy ciągów znaków:

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

Wyjście:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

W powyższym kodzie zdefiniowaliśmy listę owoców, a następnie za pomocą anonimowej funkcji (wyrażenie lambda) zdefiniowaliśmy komparator sortujący listę alfabetycznie. Następnie używamy metody sort, aby zastosować komparator do listy i ją posortować. Na koniec drukujemy posortowaną listę owoców za pomocą pętli for.

Wniosek

Funkcje anonimowe w Javie zapewniają zwięzły i czytelny sposób definiowania funkcji bez konieczności definiowania osobnej klasy lub interfejsu. Można ich używać do poprawy wydajności kodu i zapewnienia większej elastyczności w sposobie korzystania z funkcji. Wraz z wprowadzeniem wyrażeń lambda w Javie 8 funkcje anonimowe stały się dla programistów ważnym narzędziem umożliwiającym pisanie bardziej wydajnego i łatwiejszego w utrzymaniu kodu.