Java 将多个阵列组合成一个阵列的最佳方法是什么
嘿,我试着把几个double类型的数组合并成一个数组,最好的方法是什么?谢谢Java 将多个阵列组合成一个阵列的最佳方法是什么,java,arrays,Java,Arrays,嘿,我试着把几个double类型的数组合并成一个数组,最好的方法是什么?谢谢 创建一个大小合适的数组(通过遍历并求和所有源数组的长度) 反复调用System.arraycopy,一次将一个源数组复制到目标数组中,并在每次迭代时更新将其复制到的位置 比如: public static double[] Combine(double[][] arrays) { int totalLength = 0; for (double[] source : arrays) {
- 创建一个大小合适的数组(通过遍历并求和所有源数组的长度)
- 反复调用
,一次将一个源数组复制到目标数组中,并在每次迭代时更新将其复制到的位置System.arraycopy
public static double[] Combine(double[][] arrays)
{
int totalLength = 0;
for (double[] source : arrays)
{
totalLength += source.length;
}
double[] ret = new double[totalLength];
int index = 0;
for (double[] source : arrays)
{
System.arraycopy(source, 0, ret, index, source.length);
index += source.length;
}
return ret;
}
- 创建一个大小合适的数组(通过遍历并求和所有源数组的长度)
- 反复调用
,一次将一个源数组复制到目标数组中,并在每次迭代时更新将其复制到的位置System.arraycopy
public static double[] Combine(double[][] arrays)
{
int totalLength = 0;
for (double[] source : arrays)
{
totalLength += source.length;
}
double[] ret = new double[totalLength];
int index = 0;
for (double[] source : arrays)
{
System.arraycopy(source, 0, ret, index, source.length);
index += source.length;
}
return ret;
}
您可以从Guava库使用此方法,该库是开源的,可能在本月晚些时候会有一个实际的二进制版本:
您可以从Guava库使用此方法,该库是开源的,可能在本月晚些时候会有一个实际的二进制版本:
最可维护还是最高效?复制:最可维护还是最高效?复制:只有在有大约16 GB的数据时才会发生溢出吗?永远不要低估对输入的限制:你是说总长度溢出吗?嗯,我只是开玩笑,但是的,你需要16 GB的双倍数据才能溢出。然而,我确信有些应用程序确实如此。我认为JDK 7的改进之一是使用
long
长度的数组。此功能已被删除。无论如何都要检查->只有在有大约16GB的数据时才会发生溢出吗?永远不要低估输入的限制:你是说总长度溢出吗?我只是开玩笑,但是是的,你需要16GB的双倍数据才能溢出。然而,我确信有些应用程序确实如此。我认为JDK 7的改进之一是使用long
长度的数组。此功能已被删除。无论如何都会检查它->