Özet - Lambda expressions
- Java kursu
- Orta seviye
- Ders 105/116
- 5 dk
Lambda ve method reference'ı birleştirerek bir sıralama yardımcı yazarsın.
Özet - Lambda expressions
Bu grupta lambda expression ve method reference öğrendin. Lambda sözdizimi: (parametreler) -> gövde. Tek parametrede parantez isteğe bağlı; blok gövdede return şart. Lambda yalnızca functional interface'lere (tek soyut metot) atanır.
Method reference Class::method ile tek metot çağrısı içeren lambdanın kısa yoludur. forEach bir Consumer bekler; for-each döngüsünün işlevsel karşılığıdır. Comparator lambda ile sıralama modern ve okunaklıdır.
Uygulama Lambda alıştırması: forEach ve sort
List<String> names = new ArrayList<>(); tanımla; "Ayşe", "Alex", "Mehmet" ekle. names.sort((a, b) -> a.compareTo(b)); ile alfabe sırala. names.forEach(s -> System.out.println(s)); ile lambda kullanarak yazdır.
Başlangıç kodu
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// List<String> tanimla, 3 isim ekle, sort ile alfabe sirala, forEach lambda ile yazdir
}
}Örnek çözüm
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Ayşe");
names.add("Alex");
names.add("Mehmet");
names.sort((a, b) -> a.compareTo(b));
names.forEach(s -> System.out.println(s));
}
}Beklenen çıktı
Alex Ayşe Mehmet
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Lambda kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
() -> ... |
Parametresiz lambda |
s -> ... |
Tek parametreli |
Class::method |
Method reference |
(a, b) -> a - b |
Comparator lambda |
2 Hangisi bir method reference'tır?
- (a, b) -> a + b
- s -> s.length()
- Math::abs Doğru cevap
- () -> new Object()
Açıklama: Math::abs statik metot reference'ıdır; :: işareti ile yazılır.
3 Lambda vs method reference eşleştir
| Kavram | Anlamı |
|---|---|
-> |
Lambda ok |
:: |
Method reference |
Runnable |
Parametresiz hedef |
Comparator |
Sıralama hedefi |