我写了一个数据模型,将其合并到一个类中,我需要合并3个数组。这些数组具有固定大小(当然)并初始化为空。我用这个代码:合并空阵列Java
public static <T> T[] merge(T[]... arrays) {
int size = 0;
for (T[] array : arrays) {
size += array.length;
}
T[] merged = (T[]) Array.newInstance(arrays[0][0].getClass(), size);
int start = 0;
for (T[] array : arrays) {
System.arraycopy(array, 0,
merged, start, array.length);
start += array.length;
}
return (T[]) merged;
}
这条线是不正确的:
T[] merged = (T[]) Array.newInstance(arrays[0][0].getClass(), size);
我需要精确的哪一类我用,但我得到一个空指针!
创建具有适当能力的'ArrayList'会更快得到阵列本身的类型。 – SLaks
@SLaks也许更快一些。我个人认为,在效率低下的“97%”之前,我们会认为这是无法解决的问题。但我同意这样做会更快。 – corsiKa
确实......我相信'List'接口支持'toArray()'方法,但它自然会比'ArrayList'更快。 – bdares