在Java中,flatMap
是一個常見的函數式編程操作,用于將嵌套的集合結構(多維數組、嵌套列表等)轉化為一個扁平的集合。
具體來說,flatMap
接受一個函數作為參數,該函數將原始集合中的每個元素轉換為一個新的集合,并將這些新的集合合并成一個單一的扁平集合。這個操作可以減少集合的維度,并將多個嵌套層級的元素展開成一個單層級的集合。
以下是一個使用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
是一個包含多個嵌套列表的集合。通過使用flatMap
操作,我們可以將這個嵌套的結構轉換為一個扁平的集合flatList
。flatMap(List::stream)
將每個嵌套列表轉換為一個流,并將這些流合并為一個單一的流,最終使用collect(Collectors.toList())
將流收集為一個List
。
總之,flatMap
可以幫助我們將嵌套的集合結構轉換為一個扁平的集合,簡化集合操作的邏輯。