Metoda flatMap
w Java jest używana do transformacji strumieni obiektów (Streams) w sposób, który “spłaszcza” struktury danych, takie jak strumienie strumieni (Stream<Stream<T>>) do pojedynczego strumienia (Stream<T>). Jest to szczególnie przydatne w operacjach, gdzie każdy element kolekcji może zostać przekształcony w zero lub więcej elementów w wynikowym strumieniu.
Przykład użycia flatMap
w Java
W tym przykładzie pokażemy, jak można użyć flatMap
do przekształcenia listy list liczb w pojedynczy strumień liczb, a następnie wykonać na nim operacje takie jak filtrowanie i sortowanie.
Klasa Main.java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// Lista list liczb
List<List<Integer>> numberLists = Arrays.asList(
Arrays.asList(1, 2),
Arrays.asList(3, 4, 5),
Arrays.asList(6, 7, 8, 9)
);
// Użycie flatMap do przekształcenia listy list w strumień liczb
List<Integer> flatList = numberLists.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println("Spłaszczona lista: " + flatList);
// Dodatkowe operacje na spłaszczonej liście
List<Integer> processedList = flatList.stream()
// Filtrowanie parzystych liczb
.filter(n -> n % 2 == 0)
.sorted() // Sortowanie
.collect(Collectors.toList());
System.out.println("Przetworzona lista: " + processedList);
}
}
W powyższym przykładzie, numberLists
to lista list liczb. Używamy flatMap
do przekształcenia tej struktury w pojedynczy strumień liczb (flatList
), a następnie filtrujemy tylko parzyste liczby i sortujemy je, tworząc processedList
.
Podsumowanie
Metoda flatMap
w Java jest potężnym narzędziem do przetwarzania i transformacji kolekcji. Umożliwia “spłaszczanie” złożonych struktur danych do prostszej formy, co ułatwia dalsze operacje takie jak filtrowanie, sortowanie czy mapowanie. Dzięki flatMap
, operacje na strumieniach stają się bardziej elastyczne i wydajne, umożliwiając bardziej złożone przetwarzanie danych w czysty i zwięzły sposób.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.