我试图编写一个合并方法,它接受三个数组并将它们移动到一个数组中。我对java很新,我提交此代码的网站对于指出我的错误并不是很有帮助
static int[] mergeArrays(int[] a1, int[] a2, int[] a3) {
int[] answer = new int[a1.length + a2.length + a3.length];
int i,j,k;
for (i = 0; i < a1.length; i++)
answer[i] = a1[i];
for (j = 0; j < a2.length; j++)
answer[i++] = a2[j];
for (k = 0; k < a3.length; k++)
answer[i++] = a3[k];
return answer;
}
答案 0 :(得分:0)
List<Integer> mergedArray = Arrays.asList(array1);
//会给你第一个清单。
mergedArray.addAll(Arrays.asList(array2));
mergedArray.addAll(Arrays.asList(array3));
答案 1 :(得分:0)
我认为编写一个合并三个数组的方法没有任何好处。请考虑这个更灵活的签名:
public int[] merge(int[]... intarrays);
还应该避免低级循环和索引操作,Java 8会帮助你!
public int[] merge(int[]... intarrays) {
return Arrays.stream(intarrays).flatMapToInt(i -> Arrays.stream(i))
.toArray();
}
这非常简洁,没有代码重复,没有低级代码,如果数组很大或很多,甚至可以在并行流中完成。