从Java中的二维数组流


问题内容

我试图IntStream摆脱n维int数组。有没有一种不错的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<int[]>,然后Stream#flatMapToInt()方法将每个int[]元素映射到IntStreamusing
Arrays.stream(int[])方法。