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

Posted by dogukanhan on May 27, 2019 · 1 min read

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.

</figure>

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/