Commit b10b6b87 by Patryk Czarnik

mapMulti i flatMap - komentarze

parent 1b5cf06c
...@@ -37,18 +37,26 @@ public class C12_FlatMap { ...@@ -37,18 +37,26 @@ public class C12_FlatMap {
System.out.println(); System.out.println();
System.out.println(); System.out.println();
// W zwykłym map wynikowy strumień zawiera tyle samo elementów, co wejściowy.
// Jeśli funkcja mapuje wartości na kolekcje - wynikiem jest strumień kolekcji.
// Jeśli funkcja mapuje wartości na strumienie - wynikiem jest strumień strumieni.
System.out.println("Zwykłe mapowanie:"); System.out.println("Zwykłe mapowanie:");
Stream.of(1, 3, 0, 5) Stream.of(1, 3, 0, 5)
.map(C12_FlatMap::generuj) .map(C12_FlatMap::generuj)
.forEach(x -> System.out.print(x + " | ")); .forEach(x -> System.out.print(x + " | "));
System.out.println(); System.out.println();
Stream.of(1, 3, 0, 5) Stream.of(1, 3, 0, 5)
.map(x -> C12_FlatMap.generuj(x).stream()) .map(x -> C12_FlatMap.generuj(x).stream())
.forEach(x -> System.out.print(x + " | ")); .forEach(x -> System.out.print(x + " | "));
System.out.println(); System.out.println();
System.out.println(); System.out.println();
// We flatMap funkcja powinna mapować wartość na strumień, a wynikiem jest konkatenacja wynikowych strumieni.
// Daje to możliwość mapowania pojedynczego elementu wejściowego na dowolną liczbę elementóœ wynikowych:
// zero (!), jeden, dowolną skończoną liczbę, a nawet nieskońćzoność.
// Funkcja mapuje wartości na strumienie - wynikiem jest strumień wartości.
System.out.println("Płaskie mapowanie:"); System.out.println("Płaskie mapowanie:");
Stream.of(1, 3, 5) Stream.of(1, 3, 5)
.flatMap(x -> C12_FlatMap.generuj(x).stream()) .flatMap(x -> C12_FlatMap.generuj(x).stream())
...@@ -67,5 +75,5 @@ public class C12_FlatMap { ...@@ -67,5 +75,5 @@ public class C12_FlatMap {
.sum(); .sum();
System.out.println(suma); System.out.println(suma);
} }
} }
...@@ -13,6 +13,10 @@ public class C13_MultiMap { ...@@ -13,6 +13,10 @@ public class C13_MultiMap {
.forEach(x -> System.out.print(x + " | ")); .forEach(x -> System.out.print(x + " | "));
System.out.println(); System.out.println();
// W mapMulti funkcja powinna przyjąć element strumienia wejściowego i wykonać odpowiednią ilość akcji
// na przekazanym do niej obiekcie Consumer.
// Wynikiem jest strumień składający się z tych wartości, które za pomocą accept zostały dostarczone do Consumera.
// Istotne jest, że wynikowy strumień może zawierać mniej lub więcej elementów, niż wejściowy (podobnie jak we flatMap).
System.out.println("mapMulti"); System.out.println("mapMulti");
Stream.of(1, 3, 0, 5) Stream.of(1, 3, 0, 5)
.mapMulti((n, c) -> { .mapMulti((n, c) -> {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment