📜  Java的IntStream flatMap(IntFunction mapper)(1)

📅  最后修改于: 2023-12-03 14:43:02.589000             🧑  作者: Mango

Java的IntStream flatMap(IntFunction mapper)

IntStream flatMap(IntFunction<? extends IntStream> mapper)方法是Java 8引入的一个串行操作,它将函数应用于每个元素并将结果连接起来形成一个新流。在处理嵌套的集合时,flatMap()方法特别有用。

参数

mapper: 应用于每个元素的函数

返回值

函数应用于每个元素并合并的新流

代码示例
int[] arr = {1, 2, 3, 4, 5, 6};
IntStream stream = Arrays.stream(arr);

IntStream resultStream = stream.flatMap(
        num -> IntStream.rangeClosed(1, num)
);

resultStream.forEach(System.out::println);

// 输出:
// 1
// 1
// 2
// 1
// 2
// 3
// 1
// 2
// 3
// 4
// 1
// 2
// 3
// 4
// 5
// 1
// 2
// 3
// 4
// 5
// 6

以上代码将一个整数数组作为初始IntStream,然后对每个元素应用一个函数。该函数将一个整数范围流加入到新的流中以将其扁平化。

原来的数组是 [1, 2, 3, 4, 5, 6]。经过flatMap函数处理生成的流按顺序包含:

  • 1
  • 1,2
  • 1,2,3
  • 1,2,3,4
  • 1,2,3,4,5
  • 1,2,3,4,5,6
总结

IntStream flatMap(IntFunction<? extends IntStream> mapper) 方法是一个在Java 8中引入的强大而灵活的操作。它可以帮助您轻松地处理嵌套集合并生成新的流来应对不同的业务场景。