Junior
Java'da lambda ifodalar nima?
sobes.tech AI
AIdan javob
Lambda ifodasi — bu nomli funksiyani uchun qisqa shaklidir va funksional interfeys metodlarini amalga oshiradi.
Tuzilishi: (parametrlar) -> { ifoda tanasi }.
| Qism | Tavsifi | Misollar |
|---|---|---|
parametrlar |
Parametrlar ro'yxati, bo'sh bo'lishi mumkin. Turlar ko'rsatilmasligi mumkin (taxmin qilinadi). | ()<br>x<br>(x, y)<br>(int x, String y) |
-> |
O'q operatori (arrow operator). Parametrlar va tanani ajratadi. | -> |
ifoda tanasi |
Lambda tanasi. Ifoda yoki kod blokidan iborat bo'lishi mumkin. | x * x<br>{ System.out.println(x); } |
Foydalanish misollari:
-
Funktsional interfeyslarni amalga oshirish:
import java.util.function.Consumer; // An'anaviy, anonim sinf bilan amalga oshirish Consumer<String> consumerAnon = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; consumerAnon.accept("An'anaviy anonim sinf"); // Lambda ifodasi bilan Consumer<String> consumerLambda = s -> System.out.println(s); consumerLambda.accept("Lambda ifodasi"); -
Streams API bilan ishlash:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Juft sonlarni filtrlash (lambda bilan) List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(evenNumbers); // Natija: [2, 4] // Sonlarni kvadratlariga aylantirish List<Integer> squares = numbers.stream() .map(n -> n * n) .collect(Collectors.toList()); System.out.println(squares); // Natija: [1, 4, 9, 16, 25]
Afzalliklari:
- Anonim sinflarga nisbatan kodni qisqartiradi.
- Oddiy operatsiyalar uchun o'qilishi osonroq.
- Streams API va boshqa funksional dasturlash API'lari bilan qulay foydalanish imkonini beradi.