我有一个 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/