Java Eğitimleri

Java ANA SAYFA Java'ya Giriş Java Başlarken Java Sözdizimi Java Yorumları Java Değişkenleri Java Veri Türleri Java Tipi Döküm Java Operatörleri Java Dizeleri Java Matematiği Java Booleanları Java Eğer... Başka Java Anahtarı Java while Döngüsü Döngü için Java Java Ara/Devam Java Dizileri

Java Yöntemleri

Java Yöntemleri Java Yöntemi Parametreleri Java Yöntemi Aşırı Yüklemesi Java Kapsamı Java Özyineleme

Java Sınıfları

Java OOP'si Java Sınıfları/Nesneleri Java Sınıfı Nitelikleri Java Sınıfı Yöntemleri Java Oluşturucuları Java Değiştiriciler Java Kapsülleme Java Paketleri / API Java Kalıtımı Java Polimorfizmi Java İç Sınıfları Java Soyutlama Java Arayüzü Java Numaraları Java Kullanıcı Girişi Java Tarihi Java Dizi Listesi Java Bağlantılı Listesi Java Hash Haritası Java HashSeti Java Yineleyici Java Sarıcı Sınıfları Java İstisnaları Java Normal İfadesi Java Konuları Java Lambda

Java Dosya İşleme

Java Dosyaları Java Dosyaları Oluşturma/Yazma Java Okuma Dosyaları Java Dosyaları Sil

Java Nasıl Yapılır

İki Sayı Ekle

Java Referansı

Java Anahtar Kelimeleri Java Dize Yöntemleri Java Matematik Yöntemleri

Java Örnekleri

Java Örnekleri Java Derleyici Java Alıştırmaları Java Testi Java Sertifikası


Java Lambda İfadeleri


Java Lambda İfadeleri

Lambda İfadeleri Java 8'e eklendi.

Lambda ifadesi, parametreleri alan ve bir değer döndüren kısa bir kod bloğudur. Lambda ifadeleri yöntemlere benzer, ancak bir ada ihtiyaç duymazlar ve doğrudan bir yöntemin gövdesinde uygulanabilirler.


Sözdizimi

En basit lambda ifadesi, tek bir parametre ve bir ifade içerir:

parameter -> expression

Birden fazla parametre kullanmak için bunları parantez içine alın:

(parameter1, parameter2) -> expression

İfadeler sınırlıdır. Derhal bir değer döndürmeleri gerekir ve veya gibi değişkenler, atamalar veya ifadeler ifiçeremezler for. Daha karmaşık işlemler yapmak için küme parantezleri ile bir kod bloğu kullanılabilir. Lambda ifadesinin bir değer döndürmesi gerekiyorsa, kod bloğunun bir returnifadesi olmalıdır.

(parameter1, parameter2) -> { code block }

Lambda İfadelerini Kullanma

Lambda ifadeleri genellikle bir fonksiyona parametre olarak iletilir:

Örnek

Listedeki her öğeyi yazdırmak için ArrayList' yönteminde bir lamba ifadesi kullanın :forEach()

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    numbers.forEach( (n) -> { System.out.println(n); } );
  }
}

Değişkenin türü yalnızca bir yöntemi olan bir arabirim ise, Lambda ifadeleri değişkenlerde saklanabilir. Lambda ifadesi, bu yöntemle aynı sayıda parametreye ve aynı dönüş türüne sahip olmalıdır. ConsumerJava, listeler tarafından kullanılan arabirim ( java.utilpakette bulunur) gibi yerleşik bu tür arabirimlerin çoğuna sahiptir .

Örnek

ConsumerBir değişkende lambda ifadesini saklamak için Java'nın arayüzünü kullanın :

import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    Consumer<Integer> method = (n) -> { System.out.println(n); };
    numbers.forEach( method );
  }
}

Bir yöntemde lambda ifadesi kullanmak için, yöntemin türü olarak tek yöntem arabirimine sahip bir parametreye sahip olması gerekir. Arayüzün yöntemini çağırmak lambda ifadesini çalıştırır:

Örnek

Parametre olarak lambda ifadesi alan bir yöntem oluşturun:

interface StringFunction {
  String run(String str);
}

public class Main {
  public static void main(String[] args) {
    StringFunction exclaim = (s) -> s + "!";
    StringFunction ask = (s) -> s + "?";
    printFormatted("Hello", exclaim);
    printFormatted("Hello", ask);
  }
  public static void printFormatted(String str, StringFunction format) {
    String result = format.run(str);
    System.out.println(result);
  }
}