logo

Анонимна функција у Јави

у Јави, анонимне функције , такође познат као ламбда изрази. Уведен је у Јаву 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, анонимне функције су постале важан алат за програмере да пишу ефикаснији и одрживији код.