Sobes.tech
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).