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

Java 8 E-book

Yeni teknolojileri takip etmemizdeki en büyük sıkıntı olan Türkçe kaynak sıkıntısı, artık eskisine göre biraz azaldı. Ama ilerde Rahman Usta gibi ustalarımız sayesinde bu sıkıntıları daha da aza indiriceğimizden hiç kuşkum yok. Sizlere Rahman Usta tarafından yazılan Java 8 E-book linkini aşağıda paylaşıyorum..

http://kodcu.com/2014/10/java-8-ebook/