Sobes.tech
Junior

Java'da lambda ifodalar nima?

sobes.tech AI

AIdan javob

Java'da lambda ifodasi — bu nomlanmagan (ismsiz) funksiya bo'lib, u funksional interfeysni amalga oshiradi.

Asosiy xususiyatlar:

  • Nomi yo'q.
  • Parametrlar olishi mumkin.
  • Tana bitta ifoda yoki operatorlar blokidan iborat bo'lishi mumkin.
  • Qaytish turi ko'rsatilmaydi (avtomatik aniqlanadi).
  • Funktsional dasturlash va oqimlar (Streams API) bilan ishlash uchun zarur.

Sintaksis:

// Parametrlar bo'lmagan
() -> { // tana }

// Bir parametr bilan (turi qoldirilishi mumkin)
param -> ifoda

// Bir nechta parametr bilan (turi qoldirilishi mumkin, qavslar kerak)
(param1, param2) -> { // tana }

Foydalanish misoli:

// Funktsional interfeys (ichki)
import java.util.function.Consumer;

// Lambda yordamida amalga oshirish
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Salom dunyo!");

// Funktsional interfeysni qabul qiladigan metodda foydalanish
import java.util.Arrays;
import java.util.List;

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n)); // forEach Consumer ni qabul qiladi

Afzalliklar:

  • Kode qisqaroq.
  • Oddiy holatlarda o'qilishi yaxshilanadi.
  • Funktsional dasturlashdan foydalanish imkoniyati.
  • Kolleksiyalar va ko'p ipli ishlashni soddalashtiradi.

Cheklovlar:

  • Ichma-ich joylashgan yoki uzun lambda ifodalarini tushunish qiyin bo'lishi mumkin.
  • Holatga ega emas (instansiya maydonlariga ega bo'lishi mumkin emas).