Java’da Predicate Functional Interface

Metin Alnıaçık
Oct 8, 2018 · 1 min read

Predicate functional interface, java 8'de halihazırda mevcut olan bir yapıdır. Eğer functional interface nedir? Nasıl tanımlanır? Gibi soruların cevaplarını bilmiyorsanız, aşağıda bağlantı adresi verilmiş yazımı okumanızı tavsiye ederim.

Java’da Functional Interface ve Lambda Expression

Predicate generic type alabildiği gibi primitive type olan versiyonları da mevcuttur.

Predicate<T>, IntPredicate, DoublePredicate gibi.

İlgili functional interface’lerin içindeki metotları inceleyelim;

Predicate<T> → boolean test(T t);
IntPredicate → boolean test(int value);
DoublePredicate → boolean test(double value);

Basit bir örnek ile başlayalım;

Predicate interface’inin generic olan versiyonu kullanılmış. Tip Integer olarak verilmiş, eğer ilgili sayı 10 dan büyük ise true değilse false değeri dönecektir. Sonuç aşağıdaki gibidir;

5 > 10 ==> false
15 > 10 ==> true

Bu sefer aynı örneği IntPredicate ile yapalım. Farkı ise tanımlanırken tip istememesi ve parametre olarak int (primitive type) almasıdır. Fakat sonuç bir önceki örnek ile aynıdır.

5 > 10 ==> false
15 > 10 ==> true

Bir çok metot parametre olarak predicate’i almaktadır. Filter metodu buna örnektir.

  • 11 numaralı satıra bakıldığında, filter metodunun generic type bir predicate aldığını görüyoruz.
  • 13 numaralı satırdaki örnekte ise, elimizde bir liste mevcut filter metoduna bir predicate parametre (x -> x > 10) geçiyoruz. Bu filtreleme sonrası listedeki değerleri yazdırmak için forEach metodunu kullanıyoruz.
  • 18 satırda, predicate parametresini parantez içine yazmıyoruz. Daha sonra metoda parametre (greaterThan10) olarak gönderiyoruz.
  • Son örnekte ise String’ler üzerinde bir kontrol yapıyoruz.
    (x -> x.startWith(“M”)) bu kontrole göre listede kalanları yazdırıyoruz.

Örneğin tamamına github adresimden ulaşabilirsiniz.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store