gpt4 book ai didi

java - 使用基本命令在循环中复制二维数组

转载 作者:行者123 更新时间:2023-12-02 14:33:45 31 4
gpt4 key购买 nike

public static int[][] copyMatrix(int[][] matrix) 
{
for (int i = 0; (i < matrix.length); i++)
{
int[][] duplicateMatrix = new int[matrix.length][matrix[i].length];

for (int j = 0; (j < matrix[i].length); j++)
{
duplicateMatrix[i][j] = matrix[i][j];
}
}
return duplicateMatrix;
}

大家好,这个特定的函数似乎不起作用,因为重复矩阵没有初始化为变量,但我似乎无法初始化,因为它是在循环中创建的,我找不到一种方法来生成列中所需的单元格数量。帮助将不胜感激。谢谢。

最佳答案

您应该在循环之前初始化数组,因为您只想初始化一次。

public static int[][] copyMatrix(int[][] matrix) 
{
if (matrix.length < 1) {
return new int[0][0];
}
int[][] duplicateMatrix = new int[matrix.length][matrix[0].length];
for (int i = 0; (i < matrix.length); i++)
{
for (int j = 0; (j < matrix[i].length); j++)
{
duplicateMatrix[i][j] = matrix[i][j];
}
}
return duplicateMatrix;
}

此代码假设输入数组中的所有行都具有相同数量的元素(对于矩阵来说也是如此)。

如果您还记得二维数组只是数组的数组,则可以放宽这个假设:

public static int[][] copyMatrix(int[][] matrix) 
{
int[][] duplicateMatrix = new int[matrix.length][];
for (int i = 0; (i < matrix.length); i++)
{
duplicateMatrix[i] = new int[matrix[i].length];
for (int j = 0; (j < matrix[i].length); j++)
{
duplicateMatrix[i][j] = matrix[i][j];
}
}
return duplicateMatrix;
}

关于java - 使用基本命令在循环中复制二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27621461/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com