在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)化集合操作的邏輯。