Junior
Ի՞նչ են լամբդա արտահայտությունները Java-ում։
sobes.tech AI
Պատասխան AI-ից
Լամբդա արտահայտությունը կարճ ձև է անոնիմ ֆունկցիայի, որը իրականացնում է ֆունկցիոնալ ինտերֆեյսի մեթոդները։
Կառուցվածք: (պարամետրեր) -> { արտահայտության մարմին }։
| Հատված | Նկարագրություն | Օրինակներ |
|---|---|---|
պարամետրեր |
Պարամետրերի ցանկ, կարող է լինել դատարկ։ Տիպերը կարող են չնշվել (արտադրվում են)։ | ()<br>x<br>(x, y)<br>(int x, String y) |
-> |
Աղեղի օպերատոր (arrow operator): Պատկանում է պարամետրերին և մարմնին։ | -> |
արտահայտության մարմին |
Արտահայտության կամ կոդի բլոկ։ | x * x<br>{ System.out.println(x); } |
Օգտագործման օրինակներ:
-
Ֆունկցիոնալ ինտերֆեյսների իրականացում:
import java.util.function.Consumer; // Դեռ ավանդական անանուն դասի իրականացումից առաջ Consumer<String> consumerAnon = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; consumerAnon.accept("Անանուն դասական դաս"); // Լամբդա արտահայտության օգտագործմամբ Consumer<String> consumerLambda = s -> System.out.println(s); consumerLambda.accept("Լամբդա արտահայտություն"); -
աշխատել Streams API-ով:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Ֆիլտրում զույգ թվեր լամբդայով List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(evenNumbers); // Արտածում: [2, 4] // Թվերի վերափոխում քառակուսիներ List<Integer> squares = numbers.stream() .map(n -> n * n) .collect(Collectors.toList()); System.out.println(squares); // Արտածում: [1, 4, 9, 16, 25]
Առավելություններ:
- Կրճատում է կոդը անանուն դասերի համեմատ
- Բարձրացնում է ընթերցելիությունը պարզ գործողությունների համար
- Հարմար է օգտագործել Streams API-ով և այլ API-ներով, որոնք ուղղված են ֆունկցիոնալ ծրագրավորմանը։