【问题标题】:How to flatten a 2-dimensional array into a 1-dimensional array如何将二维数组展平为一维数组
【发布时间】:2015-07-21 14:00:37
【问题描述】:

如何在 java 中将二维数组转换为一维数组。我有二维数组的代码,但不知道从哪里开始。 二维数组的输出是一个 8 x 10 的网格,数字从 1 到 80。

public class move
{
    public static void main (String[] args)
    {

        int[][] twoarray = new int[8][10];

        int i ;
        int j ;

        for(i =0; i < 8; i++)
        {
            for(j = 0; j < 10; j++)
            twoarray[i][j] = (i * 10 + j+1);
        }


        for(i = 0; i < 8; i++)
        {
            for(j = 0; j < 10; j++)
            {
                System.out.print(twoarray[i][j]);
                System.out.print("  ");


            }
            System.out.println();
        }

        int[] array = new int[80];

    }
}

【问题讨论】:

  • 如果任何答案解决了您的问题,请考虑accepting 一个答案。

标签: java arrays for-loop multidimensional-array nested-loops


【解决方案1】:

你可以在你的 for 循环中做:

int[] array = new int[80];
int k=0;
for(i = 0; i < 8; i++){
    for(j = 0; j < 10; j++){
        array[k++]=twoarray[i][j];
    }
}

【讨论】:

    【解决方案2】:

    使用 Java 8

    int[] array = Stream.of(twoarray)
                        .flatMapToInt(IntStream::of)
                        .toArray();
    

    使用 Java 7 或更早版本

    int[] array = new int[80];
    int index = 0;
    for (int[] row : twoarray) {
        for (int val : row)
            array[index++] = val;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-03
      • 2011-07-26
      • 2014-09-10
      • 2015-07-17
      • 2019-11-27
      • 2018-02-03
      • 2011-07-05
      • 2015-07-16
      • 1970-01-01
      相关资源
      最近更新 更多