Java 8 Stream - Map Nedir? Nasıl Kullanılır?

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

Stream Map Nedir?

Java 8 Stream içerisinde yer alan map metotu parametre olarak java util function paketi içerisinde yer alan Function interface’i almaktadır. Stream içerisinde ki elemanları başka elamanlara dönüştürmek veya üzerlerinde işlem yapmak için Map kullanılmaktadır.

Stream Map kullanıldıktan sonra Stream’in veri tipi değişebilir, elemanları String olan bir Stream IntStream haline çevrilebilir. Map kullanıldğında Stream döngümüz sona ermez, bu yüzden Stream Map operasyonu non-terminal operasyondur.

Steram içerisinde yer alan mapToInt, mapToDouble, mapToLong primitive Streamlere çevirmek için kullanılmaktadır.

Stream Map Örnek 1

Aşağıda yer alan kod her bir ismin başına ve sonuna iki tane boşluk eklemektedir.

List < String > isimler = new ArrayList < > ();
isimler.add("dogukan");
isimler.add("onur");
isimler.add("ali");

isimler.stream().map((x) - > "  " + x + "  ").forEach(System.out::println);

Stream Map Örnek 2

Aşağıda yer alan kod double stream’i int stream’e çevirmektedir.

DoubleStream doubleStream = DoubleStream.of(0.12, 1.2, 0.3, 5.4);
doubleStream.mapToInt((x) - > (int) x).forEach(System.out::println);

Stream Map Örnek 3

Bu örnek Bir sınıfın Constructeri kullanılarak o sınıfa ait bir Stream oluşturmaktadır.

class Person {
    private String name;
    Person(String name) {
        this.name = name;
    }
}

List < String > isimler = new ArrayList < > ();
isimler.add("dogukan");
isimler.add("onur");
isimler.add("ali");

Stream < Person > personStream = isimler.stream().map(Person::new);