为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森林海 2019-11-19 14:36:34
如何将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};
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

一个简单的for循环就可以了,这并不困难,但是取决于您复制值的顺序。例如(基于您的示例中所有数组都具有相同长度的事实):


int[] newArray = new int[3 * a.length];

int index = 0;

for (int n = 0; n < a.length; n++) {

    newArray[index++] = a[n];

    newArray[index++] = b[n];

    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);


查看完整回答
反对 回复 2019-11-19
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

使用番石榴,您可以使用


int[] all = Ints.concat(originalArray);


要么


int[] all = Ints.concat(a, b, c);


查看完整回答
反对 回复 2019-11-19
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

使用Java 8,您可以“ flatMap”内部数组:


int[] flatArray = Arrays.stream(originalArray)

        .flatMapToInt(Arrays::stream)

        .toArray();

要么:


int[] flatArray = Stream.of(a, b, c)

        .flatMapToInt(Arrays::stream)

        .toArray();


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 596 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信