Sobes.tech
Junior

Java'da lambda ifadeleri nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Lambda ifadesi, anonim fonksiyon için kısa bir biçimdir ve fonksiyonel arayüz metodlarını uygular.

Yapı: (parametreler) -> { ifade gövdesi }.

Kısım Açıklama Örnekler
parametreler Parametre listesi, boş olabilir. Tipler belirtilmeyebilir (çıkarılır). ()<br>x<br>(x, y)<br>(int x, String y)
-> Ok operatörü (arrow operator). Parametreleri gövdeden ayırır. ->
ifade gövdesi Lambda gövdesi. Bir ifade veya kod bloğu olabilir. x * x<br>{ System.out.println(x); }

Kullanım örnekleri:

  • Fonksiyonel arayüzlerin uygulanması:

    import java.util.function.Consumer;
    
    // Geleneksel anonim sınıf kullanımı
    Consumer<String> consumerAnon = new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    };
    consumerAnon.accept("Geleneksel anonim sınıf");
    
    // Lambda ifadesi kullanımı
    Consumer<String> consumerLambda = s -> System.out.println(s);
    consumerLambda.accept("Lambda ifadesi");
    
  • Streams API ile çalışma:

    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;
    
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    
    // Çift sayıları filtreleme (lambda ile)
    List<Integer> evenNumbers = numbers.stream()
                                      .filter(n -> n % 2 == 0)
                                      .collect(Collectors.toList());
    
    System.out.println(evenNumbers); // Çıktı: [2, 4]
    
    // Sayıların karelerini alma
    List<Integer> squares = numbers.stream()
                                  .map(n -> n * n)
                                  .collect(Collectors.toList());
    
    System.out.println(squares); // Çıktı: [1, 4, 9, 16, 25]
    

Avantajlar:

  • Anonim sınıflara göre kodu kısaltır.
  • Basit işlemler için okunabilirliği artırır.
  • Streams API ve diğer fonksiyonel programlama API'leriyle kolay kullanım sağlar.