Junior
Kas ir lambda izteiksmes Java?
sobes.tech AI
Atbilde no AI
Lambdas izteiksme — tā ir īsa forma anonīmas funkcijas, kas realizē funkcionāla interfeisa metodes.
Struktūra: (parametri) -> { izteiksmes ķermenis }.
| Daļa | Apraksts | Piemēri |
|---|---|---|
parametri |
Parametru saraksts, var būt tukšs. Tipi var netikt norādīti (izvadīti). | ()<br>x<br>(x, y)<br>(int x, String y) |
-> |
Pīles operators (arrow operator). Atdala parametrus no ķermeņa. | -> |
izteiksmes ķermenis |
Lambdas ķermenis. Var būt izteiksme vai koda bloks. | x * x<br>{ System.out.println(x); } |
Piemēri izmantošanai:
-
Funkcionālo interfeisu realizācija:
import java.util.function.Consumer; // Pirms tradicionālās anonīmo klases realizācijas Consumer<String> consumerAnon = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; consumerAnon.accept("Tradicionālā anonīmā klase"); // Ar lambda izteiksmi Consumer<String> consumerLambda = s -> System.out.println(s); consumerLambda.accept("Lambda izteiksme"); -
Darbs ar Streams API:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; List<Integer> skaitļi = Arrays.asList(1, 2, 3, 4, 5); // Pāru skaitļu filtrēšana ar lambda List<Integer> pāruSkaitļi = skaitļi.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(pāruSkaitļi); // Izvade: [2, 4] // Skaitļu pārvēršana to kvadrātos List<Integer> kvadrāti = skaitļi.stream() .map(n -> n * n) .collect(Collectors.toList()); System.out.println(kvadrāti); // Izvade: [1, 4, 9, 16, 25]
Priekšrocības:
- Saīsināt kodu salīdzinājumā ar anonimajām klasēm.
- Uzlabot lasāmību vienkāršām operācijām.
- Ērti lietot ar Streams API un citiem API, kas orientēti uz funkcionālo programmēšanu.