从 Java 中的二维数组流式传输
2022-09-01 05:03:53
我正在尝试从n维数组中获取一个。有没有一个很好的API方法来做到这一点?我知道两个流的连接方法。IntStreamint
我正在尝试从n维数组中获取一个。有没有一个很好的API方法来做到这一点?我知道两个流的连接方法。IntStreamint
假设您希望以行为主的方法按顺序处理数组数组,这应该有效:
int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
IntStream stream = Arrays.stream(arr).flatMapToInt(x -> Arrays.stream(x));
首先,它调用 Arrays.stream(T[]) 方法,其中推断为 ,以获得 ,然后 Stream#flatMapToInt() 方法将每个元素映射到 using Arrays.stream(int[]) 方法。Tint[]Stream<int[]>int[]IntStream
为了进一步扩展Rohit的答案,可以使用方法参考来略微缩短所需的代码量:
int[][] arr = { {1, 2, 3},
{4, 5, 6},
{7, 8, 9} };
IntStream stream = Arrays.stream(arr).flatMapToInt(Arrays::stream);