Java 8 Stream – flatMap Nedir? Nasıl Kullanılır?

Java 8 Stream içerisinde yer alan flatMap operasyonu birden fazla kaynağı birleştirip yeni bir Stream oluşturmaya yarar. Birden fazla kaynak denilirken bahsedilmek istenen eğer içerisinde Streamler olan bir Stream yapımızın sözkonusu olmasıdır.

Aşağıda yer alan resim bu durumu en iyi şekilde özetlemektedir.

Aslında flatmap iki boyutlu olan kaynağımızı tek boyuta indirmek için kullanılıyor diyebiliriz. İçerisinde aynı tipte elemanlar olan iki farklı diziyi düşünelim bu dizileri birleştirmek için flatmap kullanabiliriz. Bu sayede iki kaynağımızda sanki tek bir kaynaktanmış gibi çalışacaktır.

Flatmap operasyonu function interfacesi alır ve bu interface Stream döndürmesi gerekmektedir. Aşağıdaki örnekte her bir listenin stream metotu çağrılarak bu sağlanmıştır.

List < String > isimler1 = new ArrayList < String > ();
isimler1.add("dogukan");
isimler1.add("onur");
List < String > isimler2 = new ArrayList < String > ();
isimler2.add("burak");
isimler2.add("asli");
Stream.of(isimler1, isimler2).flatMap(x - > x.stream()).forEach(System.out::println);

Resource https://examples.javacodegeeks.com/core-java/java8-flatmap-example/

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *