首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将二维数组展平为一维数组?

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

Stack Overflow用户
提问于 2010-04-03 05:26:14
回答 8查看 45.5K关注 0票数 27

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

代码语言:javascript
复制
    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};
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-04-03 05:32:48

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

代码语言:javascript
复制
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可以有不同的长度):

代码语言:javascript
复制
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);
票数 9
EN

Stack Overflow用户

发布于 2010-04-08 13:31:19

对于Guava,您可以使用以下任一方法

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

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

票数 45
EN

Stack Overflow用户

发布于 2015-02-04 01:58:00

使用Java8,您可以"flatMap“内部数组:

代码语言:javascript
复制
int[] flatArray = Arrays.stream(originalArray)
        .flatMapToInt(Arrays::stream)
        .toArray();

或者:

代码语言:javascript
复制
int[] flatArray = Stream.of(a, b, c)
        .flatMapToInt(Arrays::stream)
        .toArray();
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2569279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档