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.