有两种复制数组的好方法是使用clone和
System.arraycopy()。
这是在2D情况下如何使用克隆的方法:
int [][] myInt = new int[matrix.length][];for(int i = 0; i < matrix.length; i++) myInt[i] = matrix[i].clone();
对于System.arraycopy(),你可以使用:
int [][] myInt = new int[matrix.length][];for(int i = 0; i < matrix.length; i++){ int[] aMatrix = matrix[i]; int aLength = aMatrix.length; myInt[i] = new int[aLength]; System.arraycopy(aMatrix, 0, myInt[i], 0, aLength);}
我没有基准,但是我可以用我的2美分打赌,它们比你自己做的更快,更不容易出错。特别是,
System.arraycopy()它是用本机代码实现的。
希望这可以帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)