Junior
Mis on lambda väljendid Java's?
sobes.tech AI
Vastus AI-lt
Lambda väljendus Java-s on anonüümne (nimeta) funktsioon, mis rakendab funktsionaalset liidest.
Peamised omadused:
- Neil puudub nimi.
- Nad võivad omada parameetreid.
- Keha võib koosneda ühest väljendusest või käsuplokist.
- Tagastatava tüüpi ei ole määratud (automaatne tuletus).
- Nad on vajalikud funktsionaalseks programmeerimiseks ja voogude (Streams API) töötamiseks.
Süntaks:
// Ilma parameetriteta
() -> { // keha }
// Ühe parameetriga (tüüp võib olla jäetud)
param -> väljendus
// Mitme parameetriga (tüüp võib olla jäetud, vajalikud on sulgud)
(param1, param2) -> { // keha }
Näide kasutusest:
// Funktsionaalne liides (sisseehitatud)
import java.util.function.Consumer;
// Lambda abil rakendamine
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Tere maailm!");
// Kasutamine meetodis, mis võtab vastu funktsionaalse liidese
import java.util.Arrays;
import java.util.List;
List<Integer> numbrid = Arrays.asList(1, 2, 3, 4, 5);
numbrid.forEach(n -> System.out.println(n)); // forEach võtab vastu Consumer
Eelised:
- Lühendatud kood.
- Paranenud loetavus (lihtsates juhtudel).
- Võimalus kasutada funktsionaalset programmeerimist.
- Lihtsustab tööga kogumite ja mitme niidiga.
Piirangud:
- Sisseehitatud või pikad lambda-d võivad olla raskesti mõistetavad.
- Neil puudub seisund (ei saa omada eksemplarivälju).