你如何解包一个二维数组?

如果我有一个二维数组:

int[][] a = {
        {1, 2, 3}, 
        {4, 5, 6, 9}, 
        {7}, 
    };

我将如何将其解压缩为:

int[] a = {1, 2, 3, 4, 5, 6, 9, 7}

我知道你可以使用 for 循环来做到这一点,但它看起来很笨重,我想知道是否有更好的方法来做到这一点:

int[] b = new int[9]
for (int i = 0; i < a.length; ++i) {
    for(int j = 0; j < a[i].length; ++j) {
         b.append([i][j])
    }
}

回答

使用流很容易。

  • 第一个流返回单个一维数组(本质上是行)。
  • 下一个将其中的每一个扁平化为一个流。
  • 然后该流被收集回一个数组。
int[][] a = {
        {1, 2, 3}, 
        {4, 5, 6, 9}, 
        {7}, 
    };
int[] oneD = Arrays.stream(a).flatMapToInt(Arrays::stream).toArray();
System.out.println(Arrays.toString(oneD));

印刷

[1, 2, 3, 4, 5, 6, 9, 7]


以上是你如何解包一个二维数组?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>