在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
可以帮助我们将嵌套的集合结构转换为一个扁平的集合,简化集合操作的逻辑。