在我的应用程序中,我有一个非常大的字节数组,它是一个扁平的 3 维数组,我们使用 3 个嵌套的 for 循环 (x, y, z) 填充数组,然后我们通过一些数学运算得到我们想要的值,最具体地说:
要获取数组中的索引:
return x + z*SizeX + y*SizeX*SizeZ;
并返回 x/y/z 坐标,给定一个索引:
int index = pos;
var y = (ushort) (pos/SizeX/SizeZ);
pos -= y*SizeX*SizeZ;
var z = (ushort) (pos/SizeX);
pos -= z*SizeX;
var x = (ushort) pos;
return new BlockPos(x, y, z, index, this);
首先,我想第二个可以提高效率,我只是不知道该怎么做,任何帮助将不胜感激:P
我的主要问题是,为 y 和 x 值创建一个查找表(在加载类时填充)对我来说会更快,还是将乘法保留在那里更快?
编辑 这个数学在某些情况下被称为很多,所以如果它会更快,即使对于更长的启动它也会产生更好的差异。