我有一个2D数组,称为int类型的矩阵,我想将其复制到方法中的局部变量,以便编辑它
复制数组的最佳方法是什么?我遇到了一些麻烦
例如
int [][] myInt;
for(int i = 0; i< matrix.length; i++){
for (int j = 0; j < matrix[i].length; j++){
myInt[i][j] = matrix[i][j];
}
}
//do some stuff here
return true;
}
5条答案
按热度按时间avwztpqn1#
复制阵列有两种很好的方法,即使用clone和
System.arraycopy()
。以下是如何将克隆用于2D用例:
对于System.arraycopy(),可以用途:
我没有基准测试,但我可以用我的
2 cents
打赌,它们比自己做更快,更不容易出错,特别是System.arraycopy()
,因为它是用本机代码实现的。vd2z7a6w2#
在Java 8中可以使用流来复制2D数组。
stszievb3#
您没有初始化本地二维数组。
irtuqstp4#
如果数据量很大,你应该考虑使用一个合适的线性代数库,比如
colt
或nd4j
。System.arraycopy
可能只有在数组是一维的情况下才会有意义地更快,否则它无法将整个数据作为一个单元复制,然后将其重新整形为numpy或R。tkclm6bt5#
你也可以像这样编写代码myInt = matrix.clone();