java flatmap的用法是什么

小億
141
2023-11-22 23:24:35

在Java中,flatMap是一個(gè)常見(jiàn)的函數(shù)式編程操作,用于將嵌套的集合結(jié)構(gòu)(多維數(shù)組、嵌套列表等)轉(zhuǎn)化為一個(gè)扁平的集合。

具體來(lái)說(shuō),flatMap接受一個(gè)函數(shù)作為參數(shù),該函數(shù)將原始集合中的每個(gè)元素轉(zhuǎn)換為一個(gè)新的集合,并將這些新的集合合并成一個(gè)單一的扁平集合。這個(gè)操作可以減少集合的維度,并將多個(gè)嵌套層級(jí)的元素展開(kāi)成一個(gè)單層級(jí)的集合。

以下是一個(gè)使用flatMap的示例代碼:

List<List<Integer>> nestedList = Arrays.asList(
    Arrays.asList(1, 2, 3),
    Arrays.asList(4, 5, 6),
    Arrays.asList(7, 8, 9)
);

List<Integer> flatList = nestedList.stream()
                                  .flatMap(List::stream)
                                  .collect(Collectors.toList());

System.out.println(flatList); // 輸出 [1, 2, 3, 4, 5, 6, 7, 8, 9]

在上述代碼中,nestedList是一個(gè)包含多個(gè)嵌套列表的集合。通過(guò)使用flatMap操作,我們可以將這個(gè)嵌套的結(jié)構(gòu)轉(zhuǎn)換為一個(gè)扁平的集合flatList。flatMap(List::stream)將每個(gè)嵌套列表轉(zhuǎn)換為一個(gè)流,并將這些流合并為一個(gè)單一的流,最終使用collect(Collectors.toList())將流收集為一個(gè)List。

總之,flatMap可以幫助我們將嵌套的集合結(jié)構(gòu)轉(zhuǎn)換為一個(gè)扁平的集合,簡(jiǎn)化集合操作的邏輯。

0