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