【发布时间】:2011-10-12 16:54:06
【问题描述】:
简单的问题,在 Java 中复制双精度数组的最快方法是什么。我目前正在这样做...
public static double[] clone_doubles(double[] from)
{
double[] to = new double[from.length];
for (int i = 0; i < from.length; i++) to[i] = from[i];
return to;
}
它也进行分配以避免溢出,但如果有更快的方法,我会将分配与副本分开。
我看过 Arrays.copyOf() 和 System.arraycopy() 但我想知道是否有人有任何巧妙的技巧。
编辑:
复制double[][]怎么样?
【问题讨论】:
-
“将分配与副本分开”是什么意思?您的意思是您可以重复使用目标数组而不是分配一个新数组吗?我猜
System.arraycopy()是最快的,比你的代码快得多。你分析过它吗? -
为什么不将
arr.clone()添加到您的列表中,对所有四种方法进行基准测试,然后在此处发布结果? :-) -
@aix,clone() 与 JIT 时的 Arrays.copy 相同
标签: java