如何将二维数组展平为一维数组

时间:2015-05-11 06:58:10

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

如何将2d数组转换为java中的1d数组。我有2d数组的代码,但不知道从哪里开始。 2d数组的输出为8×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];

    }
}

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

你可以在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];
    }
}
相关问题