溫馨提示×

flatmap java怎樣處理流操作

小樊
112
2024-11-23 14:33:22
欄目: 編程語言

flatMap 是 Java 8 中引入的一個 Stream API 方法,它用于將多個 Stream 合并為一個 Stream。在處理流操作時,flatMap 非常有用,因為它可以將嵌套的 Stream 結構扁平化為一個 Stream。flatMap 的簽名如下:

<R, A> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);

其中,T 是原始 Stream 的元素類型,R 是扁平化后的 Stream 的元素類型,mapper 是一個函數,它接受一個 T 類型的元素并返回一個 Stream<R> 類型的結果。

下面是一個簡單的示例,說明如何使用 flatMap 處理流操作:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class FlatMapExample {
    public static void main(String[] args) {
        // 創建一個 List<List<String>> 結構
        List<List<String>> nestedList = Arrays.asList(
                Arrays.asList("A", "B"),
                Arrays.asList("C", "D", "E"),
                Arrays.asList("F")
        );

        // 使用 flatMap 將嵌套的 List 扁平化為一個 String 類型的 Stream
        Stream<String> flatStream = nestedList.stream()
                .flatMap(list -> list.stream());

        // 收集扁平化后的 Stream 到一個新的 List 中
        List<String> result = flatStream.collect(Collectors.toList());

        // 輸出結果
        System.out.println(result); // 輸出:[A, B, C, D, E, F]
    }
}

在這個示例中,我們首先創建了一個 List<List<String>> 結構。然后,我們使用 flatMap 方法將嵌套的 List 扁平化為一個 String 類型的 Stream。最后,我們使用 collect 方法將扁平化后的 Stream 收集到一個新的 List 中,并輸出結果。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女