Sobes.tech
Junior

Java'da lambda ifodalar nima?

sobes.tech AI

AIdan javob

Java'da lambda ifadesi, nomli funksiyalarni (ismsiz funksiyalar) qisqa tarzda ifodalash usulidir. Ular funksional interfeyslarning nusxalarini yaratishda ishlatiladi.

Asosiy komponentlar:

  • Parametrlar ro'yxati: () qavslar parametrlar ro'yxatini o'z ichiga oladi. Agar parametrlar bo'lmasa, bo'sh qavslar ishlatiladi.
  • Yo'nalish ->: Parametrlar ro'yxatini lambda tanasidan ajratadi.
  • Tana: Yagona ifoda yoki qavslar {} ichida kod blok bo'lishi mumkin.

Parametrsiz misol:

// Funktsional interfeys
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Lambda ifodasi ishlatish
Greeting greeting = () -> System.out.println("Hello, World!");

Parametrli misol:

// Funktsional interfeys
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Lambda ifodasi ishlatish
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Afzalliklar:

  • Qisqalik: Boilerplate kod hajmini kamaytiradi.
  • Qulaylik: Koleksiyalarni qayta ishlash uchun Stream API bilan birga ishlatiladi.
  • Funktsional dasturlash: Java'da funktsional dasturlash elementlarini qo'llab-quvvatlaydi.

Cheklovlar:

  • Faqat funksional interfeyslar bilan ishlatilishi mumkin (bir ta abstrakt metodga ega interfeyslar).
  • Holatga ega bo'lishi mumkin emas (ya'ni, bu o'zgaruvchilarni tashqi kontekstda o'zgartira olmaydi, agar bu o'zgaruvchilar aniq final yoki effektli final sifatida e'lon qilinmagan bo'lsa).

Lambda ifodalar Java 8 da kiritilgan.