java - 将二维数组复制到一维数组

标签 java arrays

我有一个 7 行 5 列的二维数组。我正在尝试将二维数组转换为一维数组,但出于某种原因,它只会复制每一行中的最后一个元素或完整的最后一列。

我的二维数组是这样的:

0   33  32  37  0 
85  73  82  73  80 
104 103 95  109 101 
88  108 111 116 100 
133 119 102 122 116 
116 123 95  112 117 
0   57  76  58  0 

但是我的一维数组的输出是:

0.0 80.0 101.0 100.0 116.0 117.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 .....

这是我的代码:

public static void getTestImg() {
    TestImg = new double[35];
    double testValues;
    for (int r=0; r < TestPix.length; r++) {
        for (int c=0; c < TestPix[r].length; c++) {
            testValues = TestPix[r][c];
            TestImg[r] = testValues;
        }
    }
    for (int r=0; r < TestImg.length; r++) {
       System.out.print(TestImg[r] + " ");
    }
    System.out.println();
}

我一直在努力弄清楚哪里出了问题,但我无法弄清楚是什么原因造成的。如果我在循环中打印“TestPix[r][c]”,它会按顺序打印元素,所以我不知道问题出在哪里。谁能帮忙?

最佳答案

您复制到输出数组的错误索引(r 是源二维数组当前行的索引)。你需要一个不同的索引变量:

int x = 0;
for (int r=0; r < TestPix.length; r++) {
    for (int c=0; c < TestPix[r].length; c++) {
        TestImg[x++] = TestPix[r][c];
    }
}

关于java - 将二维数组复制到一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35268448/

相关文章:

c - 使用字符串数组的排序函数 - C 中的错误

javascript - JS/ meteor : Returning 'checked' if string is found in array

java - 根据背景图像修复 EditBOX 的大小 android

java - Neo4j 中具有一级关系的路径

javascript - Google 脚本自定义函数 - 范围数组作为参数

c - 为什么这种指针运算在函数中有效,但在 main 中却无效?

sql - PostgreSQL - 数组值必须以 "{"或维度信息开头

java - Servlet request.getParameter() 返回 null

java - 如何在 LibGDX 中绘制 BitmapFont?

java - 如何在此正则表达式中包含减号?