我用从另一个方法接收的一些值填充了一个数组,我想用第一个方法的值填充一个二维数组,例如:
int[] singleArray; // there's no values here to demonstrate,
// let's think that's populated
int[][] bidimArray = new int[80][80];
for (int i = 0; i < 80; i++) {
for (int j = 0; j < 80; j++) {
for (int x = 0; x < singleArray.length; x++) {
bidimArray[i][j] = singleArray[x];
}
}
}
我想在上面的解决方案中,除了看起来很难看的解决方案外,它只保存了最后一个位置 singleArray
在 bidimArray[][]
. 有人能帮我吗?
2条答案
按热度按时间ycggw6v21#
不需要第三个
for
在这里循环。这就是你错的地方。对代码的更改只是简单地增加x
对于输入到新2d数组中的每个值,忽略第三个for循环。您也可以这样组合循环中的两条内线:
正如在注解中指出的,您不应该硬编码数组大小。对于你的方法,你必须确保
singleArray
至少包含80*80
元素。如果没有给出,您应该确保事先检查该约束。sc4hvdpw2#
二维数组的循环填充
8x7
使用一维数组中的值6
. 无论大小,它都适用于较大和较小的阵列:另请参见:将一维阵列复制到二维阵列