将三个int数组合并为一个Java

时间:2016-07-04 07:53:23

标签: java arrays

我试图编写一个合并方法,它接受三个数组并将它们移动到一个数组中。我对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;
}

2 个答案:

答案 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();
}

这非常简洁,没有代码重复,没有低级代码,如果数组很大或很多,甚至可以在并行流中完成。