Java 8 Lambda Nedir ve Nasıl Kullanılır?

Merhaba, bu bloga 2.yazım olarak JDK 8 ‘ de adını vermiş (Project Lambda), JDK 8 ‘ in getirdiği en önemli özelliklerden biri olan Lambda ‘ ların ne olduklarını ve basit olarak nasıl kullanıldıklarını anlatacağım.

 

Lambda , programlama dili çerçevesinde Lambda, anonim tekil görevler olarak değerlendirilebilir. Lambda deyimleri (Lambda fonksiyonları da denebilir), referans verilebilir ve tekrar tekrar kullanılabilirdir. [1] Temelde belli bir giriş değerine karşılık bir sonuç üretirler.

Kullanımını örnekler üzerinden devam edelim..

Kod 1 : Döngü

Basit bir string listesi içindeki verileri konsola yazdırırken aşağıdaki gibi bir yol izleriz.


String[] strArray = {"Bruce Wayne", "Jason Todd", "Dick Grayson", "Tim Drake", "Barbara Gordon"};
List characters = Arrays.asList(strArray);
for (String character : oyuncular) {//Bildigimiz for dongusu
System.out.println(character);
}

Lambda’lar ile for döngüsünü aşağıdaki şekilde olmaktadır.


characters.forEach((character) -> System.out.println(character));

Kod 2 : Limit
Listemizde 5 eleman bulunmakta biz sadece 3 tanesini yazdırmak istersek aşağıdaki kod tam da istediğimiz işi yapacaktır.


characters.stream()
.limit(3)
.forEach((character) -> System.out.println(character));

Kod 3 : Sıralama
İsme göre sıralama yapmak istersek aşağıdaki gibi bir kod yazılabilir.


List sortedCharacters = characters
.stream()
.sorted((c1, c2) -> (c1.compareTo(c2)))
.collect(toList());

Kod 4 : Thread
Normal olarak yazdığımız thread aşağıdaki gibi tek satıra indirgenmektedir.


new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Lambda!!");
}
}).start();

//lambda ‘ lar ile


new Thread(() -> System.out.println("Lambda!!")).start();

 

Evet çok basit örnekler ile lambda ‘ ların kullanımı bu şekilde. Lambda ‘ lar JDK 8 ile gelmektedir bu yüzden sisteminizde JDK 8 yüklü olması gerekiyordu.
Ancak retrolambda adı verilen proje sayesinde, lambda ‘ ları JDK 5,6 ve 7 versiyonlarında da kullanılabilmesine olanak tanıyor. Proje linki : https://github.com/orfjackal/retrolambda
İlerleyen zamanlarda bu kütüphanenin nasıl kullanıldığına dair bir yazı yazmayı düşünüyorum.

Şimdilik bu kadar.. 🙂

Test edilmeyen kod tuhaflaşır…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s