FlatMap w Java

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.

Scroll to Top