Metot Tanımı:
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
Açıklama:
Stream üzerindeki tüm elemanlara, parametre olarak geçilen fonksiyonun uygulanması ile elde edilen yeni bir stream döndürür.
İsminden de anlaşılabileceği gibi, elimizdeki streami, istediğimiz türden başka bir streame maplemek için kullanılır. Map içinde verilen fonksiyonun dönüş tipi ne ise, Streamin dönüş tipi de o olacaktır.
Map metodunu birinci örnek üzerinden açıklamak istiyorum.
Satır satır inceleyelim.
productList.stream() : Burada yapılan iş, Product listesinin bir streame çevrilmesidir.
.map(Product::getName) : Burada yapılan iş Streamin, Product ların name ini alacak şekilde bir String Streamine dönüştürülmesidir. Yani önceden elimizde Productların olduğu bir Stream varken, artık elimizde sadece Productların isimlerinin olduğu yeni bir Stream var.
.collect(Collectors.toList()); : Burada yapılan iş elimizdeki String Streamini String listesine çevilmesidir.
Yani en başta elimizde List<Product> var.
productList.stream() yazarak bunu Stream<Product> haline getirdik.
.map(Product::getName) yazarak bunu Stream<String> haline getirdik.
.collect(Collectors.toList()); yazarak da List<String> haline getirdik.
Kod Örneği: