对于算法需要数组的副本。有原始和温度。需要处理"转弯"所以可以重新使用temp,但需要从那个状态开始。
每次转弯后,使用temp完成(但需要再次进行下一次迭代)。将temp复制到原始文件或者只是将原始文件分配给temp并为temp创建一个新数组是否更好?大小将是5x5到300x300 2D int数组。
//int [][]orig //initialized elsewhere
int [][]newData = new int[orig.length][orig[0].length];
for (int i = 0; i < turns; i++) {
proc1Turn(orig, newData);
//after 1 turn copy newData to orig OR assign to orig
//and create new array for newData?
}
哪种更快或更快?如果我们有足够的RAM /可用堆用于JVM,那么这对于任何系统都是一样的吗?
答案 0 :(得分:1)
将temp复制到原始文件或将原始文件分配给temp并为temp创建一个新数组是否更好?
最好不要这样做。只需交换数组引用。
int [][] t = newdata;
newdata = orig;
orig = t;
这样可以避免分配一个新的数组(需要运行时清除它,并且需要在某个时刻对前一个数组进行垃圾回收)。