flatMap()是Java Stream API中的一个中间操作,用于将一个Stream中的每个元素映射为一个新的Stream,并将这些新的Stream连接成一个单一的Stream。
flatMap()方法接受一个函数作为参数,该函数将每个元素映射为一个Stream。然后,flatMap()方法将所有这些映射后的Stream连接成一个单一的Stream。
以下是一个示例:
List<List<Integer>> numbers = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
List<Integer> flattenedNumbers = numbers.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
在这个示例中,我们首先创建了一个包含多个列表的列表。然后,我们使用stream()方法将每个列表转换为一个Stream。接下来,我们使用flatMap()方法将所有这些Stream连接成一个单一的Stream。最后,我们使用collect()方法将连接后的元素收集到一个新的列表中。
请注意,flatMap()方法的参数是一个函数引用List::stream,它将每个列表映射为一个Stream。这样,最终的Stream将包含所有列表中的元素。
flatMap()方法对于处理嵌套的集合非常有用。它可以将嵌套的集合展平为一个单一的流,方便进行后续的操作和处理。