Java 将一维阵列转换为二维阵列
我试图获取一个包含400个整数的数组,并将其拆分为一个20x20二维数组。我认为我的算法是正确的,但是一维数组的和与二维数组的和不匹配,所以我显然做错了什么。这是我的密码:Java 将一维阵列转换为二维阵列,java,arrays,Java,Arrays,我试图获取一个包含400个整数的数组,并将其拆分为一个20x20二维数组。我认为我的算法是正确的,但是一维数组的和与二维数组的和不匹配,所以我显然做错了什么。这是我的密码: private static void processArray(int[] inArray) { int[][] array = new int[20][20]; for (int x = 0; x < 20; x++) { for (int y = 0; y < 20
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
for (int z = 0; z < 400; z++)
{
array[x][y] = inArray[z];
}
}
}
}
我做错了什么 将输入数组中的最后一个元素分配给输出数组中的每个元素。必须将输入数组上的内部循环更改为拾取正确输入元素的单个赋值
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[x * 20 + y]; // or devise your own calculation
}
}
}
将输入数组中的最后一个元素分配给输出数组中的每个元素。必须将输入数组上的内部循环更改为拾取正确输入元素的单个赋值
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[x * 20 + y]; // or devise your own calculation
}
}
}
对于每对x和y,代码将从inArray到数组[x][y]的每个值赋值。这显然是错误的
以下是修复代码的一种方法:
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0, z = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[z++];
}
}
}
对于每对x和y,代码将从inArray到数组[x][y]的每个值赋值。这显然是错误的
以下是修复代码的一种方法:
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0, z = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[z++];
}
}
}
当前方法将使用原始数组中的最后一个元素分配数组中的每个元素 在相同的循环中,不应迭代z,而应将其用作计数器
int z = 0;
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[z++];
}
}
当前方法将使用原始数组中的最后一个元素分配数组中的每个元素 在相同的循环中,不应迭代z,而应将其用作计数器
int z = 0;
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[z++];
}
}
基本上是将数组[x][y]赋值为等于inArray[0],然后是inArray[1],然后是inArray[2],一直到[400] 我会做类似的事情
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[x * 20 + y];
}
}
}
基本上是将数组[x][y]赋值为等于inArray[0],然后是inArray[1],然后是inArray[2],一直到[400] 我会做类似的事情
private static void processArray(int[] inArray)
{
int[][] array = new int[20][20];
for (int x = 0; x < 20; x++)
{
for (int y = 0; y < 20; y++)
{
array[x][y] = inArray[x * 20 + y];
}
}
}