【发布时间】:2014-07-15 23:46:26
【问题描述】:
我想在与 N^2 成正比的时间内复制一个数组。我现在只是在使用双 for 循环...
int[][] copy = new int[N][N];
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
copy[i][j] = original[i][j];
}
}
有没有更快的方法?
【问题讨论】:
-
按照你的做法,如果你删除
original数组,copy也会为空。您只是在复制引用,而不是值。 -
@HugoSousa,不,我不这么认为。数组元素实际上被复制了。
-
你为什么不看看
Arrays.copyOf()的源代码,看看它是如何完成的呢?这可能是你能得到的最好的。 -
@PM77-1,这不是讨论的重点吗?假设问题陈述中不存在的东西有什么意义。
-
@OP,为什么你认为你当前的实现很慢?你做过基准测试吗?