у Јави, анонимне функције , такође познат као ламбда изрази. Уведен је у Јаву 8 као начин да се обезбеди сажетији и читљивији код. Они нам омогућавају да дефинишемо функцију у једној линији кода без потребе да експлицитно дефинишемо класу или интерфејс.
ред аутоцад команде
Шта је анонимна функција?
Анонимна функција је функција која нема име и није везана за идентификатор. Обично се дефинише инлине и може се прослеђивати као аргумент другој функцији или вратити као вредност из функције. У Јави, анонимне функције се имплементирају као ламбда изрази, који су скраћени начин дефинисања анонимне функције.
Синтакса
Синтакса за анонимну функцију у Јави је следећа:
(parameters) -> { body }
Параметри су улази у функцију, а тело је код који се извршава када се функција позове. Ево примера анонимне функције која узима два цела броја као улазе и враћа њихов збир:
(int a, int b) -> { return a + b; }
Горња анонимна функција може бити прослеђена као аргумент другој функцији или додељена променљивој:
Function add = (a, b) -> a + b;
У овом примеру дефинишемо променљиву под називом адд која је функција која узима два цела броја као улазне податке и враћа њихов збир.
Предности анонимних функција
Употреба анонимних функција у Јави има неколико предности, укључујући:
Сажета синтакса: Анонимне функције обезбеђују концизан начин дефинисања функције без потребе за дефинисањем посебне класе или интерфејса.
Читљив код: Пошто су анонимне функције дефинисане инлине, код може бити лакши за читање и разумевање.
Флексибилност: Анонимне функције могу бити прослеђене као аргументи другим функцијама или враћене као вредности из функција, пружајући већу флексибилност у начину на који се функције користе.
Побољшане перформансе: Употреба анонимних функција може побољшати перформансе смањењем количине меморије и процесорске снаге потребне за дефинисање и позивање функција.
ево примера Јава кода који показује употребу анонимних функција (ламбда израза) за филтрирање листе целих бројева:
АнонимоусФунцтионЕкампле.јава
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; } }
Излаз:
Even numbers: 2 4
У овом коду дефинишемо листу целих бројева, а затим користимо анонимну функцију (ламбда израз) да дефинишемо предикат који филтрира листу тако да укључује само парне бројеве. Затим користимо метод филтера да применимо предикат на листу и вратимо нову листу парних бројева. На крају, штампамо парне бројеве користећи фор петљу.
Ево још једног примера Јава кода који показује употребу анонимних функција (ламбда израза) за сортирање листе стрингова:
АнонимоусФунцтионЕкампле.јава
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); } } }
Излаз:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
У горњем коду смо дефинисали листу воћа, а затим користимо анонимну функцију (ламбда израз) да дефинишемо компаратор који сортира листу по абецедном реду. Затим користимо метод сортирања да применимо компаратор на листу и сортирамо је. На крају, штампамо сортирану листу воћа користећи фор петљу.
Закључак
Анонимне функције у Јави пружају концизан и читљив начин дефинисања функција без потребе за дефинисањем посебне класе или интерфејса. Могу се користити за побољшање перформанси кода и обезбеђивање веће флексибилности у начину на који се функције користе. Са увођењем ламбда израза у Јаву 8, анонимне функције су постале важан алат за програмере да пишу ефикаснији и одрживији код.