从java中的二维数组流

我试图从一个n维int数组中获取一个IntStream 。 有一个很好的API方法吗? 我知道两个流的连接方法。

假设你想在行主要方法中顺序处理数组数组,这应该工作:

 int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; IntStream stream = Arrays.stream(arr).flatMapToInt(x -> Arrays.stream(x)); 

首先,它调用Arrays.stream(T[])方法,其中T被推断为int[] ,以获取Stream ,然后Stream#flatMapToInt()方法将每个int[]元素映射到IntStream使用Arrays.stream(int[])方法。

为了进一步扩展Rohit的答案,可以使用方法参考来略微缩短所需的代码量:

 int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; IntStream stream = Arrays.stream(arr).flatMapToInt(Arrays::stream);