Junior
Java-da lambda ifadələri nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Lambda ifadəsi — bu, anonim funksiyanın qısa formasıdır və funksional interfeys metodlarını həyata keçirir.
Quruluş: (parametrlər) -> { ifadə bədəni }.
| Hissə | Təsviri | Nümunələr |
|---|---|---|
parametrlər |
Parametrlər siyahısı, boş ola bilər. Növlər göstərilməyə bilər (açıqlanır). | ()<br>x<br>(x, y)<br>(int x, String y) |
-> |
Ox operatoru (arrow operator). Parametrləri və bədəni ayırır. | -> |
ifadə bədəni |
Lambda bədəni. İfadə və ya kod bloku ola bilər. | x * x<br>{ System.out.println(x); } |
İstifadə nümunələri:
-
Funksional interfeyslərin tətbiqi:
import java.util.function.Consumer; // Əvvəlki, ənənəvi anonim siniflə tətbiq Consumer<String> consumerAnon = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; consumerAnon.accept("Ənənəvi anonim sinif"); // Lambda ifadəsi ilə Consumer<String> consumerLambda = s -> System.out.println(s); consumerLambda.accept("Lambda ifadəsi"); -
Streams API ilə işləmək:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Cüt ədədləri filtr etmək (lambda ilə) List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(evenNumbers); // Nəticə: [2, 4] // Ədədləri kvadratlarına çevirmək List<Integer> squares = numbers.stream() .map(n -> n * n) .collect(Collectors.toList()); System.out.println(squares); // Nəticə: [1, 4, 9, 16, 25]
Üstünlüklər:
- Kodun qısaldılması, anonim siniflərlə müqayisədə.
- Sadə əməliyyatlar üçün oxunaqlığın artırılması.
- Streams API və digər funksional proqramlaşdırma API-ləri ilə asan istifadə.