java中如何将二维数组从一个拷贝到另一个
我想知道将二维数组从临时数组复制到原始数组的正确方法是什么。 数组大小在程序开始时未知,用户稍后将对其进行设置。 代码如下: 私有静态无效复制矩阵(整数原点矩阵[],整数复制矩阵[],整数行,整数 (列) {java中如何将二维数组从一个拷贝到另一个,java,Java,我想知道将二维数组从临时数组复制到原始数组的正确方法是什么。 数组大小在程序开始时未知,用户稍后将对其进行设置。 代码如下: 私有静态无效复制矩阵(整数原点矩阵[],整数复制矩阵[],整数行,整数 (列) { for ( int i = 0 ; i < row-1; ++i) { for (int j = 0; j < column; j++) { origin_Matrix[i][j] =
for ( int i = 0 ; i < row-1; ++i)
{
for (int j = 0; j < column; j++)
{
origin_Matrix[i][j] = copy_Matrix[i][j];
}
}
for(int i=0;i
}
我知道这是错误的,请帮助。您使用原语代替原语是有原因的吗?如果不是,我会用那些。它们经过优化,并为操作提供了相当健壮的API。Java中不需要前缀增量。另外,您不需要在Java中传递行和列计数(这只会留下出错的空间)。此外,还存在一个函数System.arraycopy,该函数的效率至少应与一次复制一个文件的效率相同,如果不是更高的话
private static void copy_Matrix(int origin_Matrix[][] , int copy_Matrix[][])
{
/* assert origin_Matrix.length == copy_Matrix.length */
for ( int i = 0 ; i < origin_Matrix.length; i++)
{
/* assert origin_Matrix[i].length == copy_Matrix[i].length */
System.arraycopy(origin_Matrix[i], 0, copy_Matrix[i], 0, origin_Matrix[i].length);
}
}
private static void copy_矩阵(int-origin_矩阵[],int-copy_矩阵[])
{
/*断言原点\u Matrix.length==复制\u Matrix.length*/
对于(int i=0;i
请注意,您应该了解Java集合(如List/ArrayList或Vector),并有意识地决定,在您的情况下,int数组的轻微性能提升是必要的,而不是集合提供的额外可读性和便利性。您最好以以下内容结束:
private static int[][] copy_Matrix(int origin_Matrix[][])
{
int copy[][] = new int[origin_Matrix.length][origin_Matrix[0].length];
for ( int i = 0 ; i < origin_Matrix.length; ++i)
{
System.arraycopy(origin_Matrix[i], 0, copy[i], 0, origin_Matrix[i].length);
}
return copy;
}
private static int[]copy_Matrix(int origin_Matrix[]
{
int copy[][]=new int[origin_Matrix.length][origin_Matrix[0.length];
对于(int i=0;i
@Eden
代码并不是那么完美;你为什么要做i
首先检查循环?我想你应该做I|
检查
此外,您不需要显式传递大小。
可以在数组上使用.length字段来获取其大小。int数组在某些操作中有其位置。例如,在做疯狂的欧拉投影问题时,我使用向量代替数组,因为它更简单,而且我认为它已经足够优化,不会产生太大的差异;在对速度感到失望之后,我切换到int数组,这是一个巨大的差异。然而,我同意Edan应该了解Java集合,并有意识地决定使用INT数组更好。在本例中,他似乎只是简单地从C/C++移植代码,从前缀运算符和行、列参数可以看出这一点。