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