如何将2D数组展平为1D数组?

如何将2维数组展平int originalArray[][]为1维数组?


    int a [] = {1,2,6,7,2};

    int b [] = {2,44,55,2};

    int c [] = {2,44,511,33};


    int originalArray [][] = new int[][]{a,b,c};


森林海
浏览 597回答 3
3回答

缥缈止盈

一个简单的for循环就可以了,这并不困难,但是取决于您复制值的顺序。例如(基于您的示例中所有数组都具有相同长度的事实):int[] newArray = new int[3 * a.length];int index = 0;for (int n = 0; n < a.length; n++) {&nbsp; &nbsp; newArray[index++] = a[n];&nbsp; &nbsp; newArray[index++] = b[n];&nbsp; &nbsp; newArray[index++] = c[n];}或(不同顺序,a,b,c的长度可以不同):int[] newArray = new int[a.length + b.length + c.length];System.arraycopy(a, 0, newArray, 0, a.length);System.arraycopy(b, 0, newArray, a.length, b.length);System.arraycopy(c, 0, newArray, a.length + b.length, c.length);

Cats萌萌

使用番石榴,您可以使用int[] all = Ints.concat(originalArray);要么int[] all = Ints.concat(a, b, c);

呼啦一阵风

使用Java 8,您可以“ flatMap”内部数组:int[] flatArray = Arrays.stream(originalArray)&nbsp; &nbsp; &nbsp; &nbsp; .flatMapToInt(Arrays::stream)&nbsp; &nbsp; &nbsp; &nbsp; .toArray();要么:int[] flatArray = Stream.of(a, b, c)&nbsp; &nbsp; &nbsp; &nbsp; .flatMapToInt(Arrays::stream)&nbsp; &nbsp; &nbsp; &nbsp; .toArray();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java