Page 37 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 37
Java’da Fonksiyonel Programlama | 37
Program çıktısı:
1
2
3
4
4.8. Count
Stream içindeki veri sayısını döner.
4.7’de bulunan örnek buraya da uyarlanabilir. Program ilk önce listenin orijinal halinin eleman sayısını
ardından da distinct çağrısından sonraki eleman sayısını çıktı olarak verecektir.
List<Integer> sayiList = Arrays.asList(1,2,3,3,1,3,4);
System.out.println(sayiList.stream().count());
System.out.println(sayiList.stream().distinct().count());
Program çıktısı:
7
4
4.9. Min/Max
Sırasıyla stream içindeki en küçük ve en büyük veriyi döner. Karşılaştırma metodu özel olarak
tanımlanabilir.
Örneğin aşağıdaki liste sırasıyla 1 ve 5 çıktısı verecektir.
List<Integer> sayiList = Arrays.asList(3, 1, 4, 5, 2);
System.out.println(sayiList.stream().min((x, y) -> x.compareTo(y)).get());
System.out.println(sayiList.stream().max((x, y) -> x.compareTo(y)).get());
4.10. FlatMap
FlatMap operatörü map’e oldukça benzer olmakla birlikte farkı, kendi içinde streamleri otomatik
olarak birleştirip tek bir stream haline getirmesidir. Buna düzleştirme (flatten) denir.